Sobes.tech
Junior — Middle

Hogyan valósítható meg zökkenőmentesen a kijelző változása az eszköz irányának váltásakor?

sobes.tech MI

Válasz az MI-től

Az iOS-eszköz irányának váltásakor a megjelenítés zökkenőmentes változtatásának biztosításához általában a vezérlő életciklusának módszereit és animációkat használják.

A fő megközelítés az, hogy felülírjuk a viewWillTransition(to:with:) metódust a UIViewController-ben. Ebben a módszerben megkaphatja az új képernyőméreteket, és az UIViewControllerTransitionCoordinator objektum segítségével végrehajthat egy felületváltoztatási animációt.

Példa:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    
    coordinator.animate(alongsideTransition: { _ in
        // Itt frissítjük a layout-ot vagy módosítjuk a UI elemeket
        self.view.layoutIfNeeded()
    }, completion: nil)
}

Ha Auto Layout-ot használ, a constraint-ek módosítása és a layoutIfNeeded() hívása az animáció során biztosítja a zökkenőmentes átmenetet.

Ezenkívül a UIView.animate használható egyedi animációkhoz az irányváltás során.