Sobes.tech
Junior — Middle

Ako implementovať plynulú zmenu zobrazenia pri prepínaní orientácie zariadenia?

sobes.tech AI

Odpoveď od AI

Pre plynulý prechod pri zmene orientácie zariadenia v iOS sa zvyčajne používajú metódy životného cyklu kontroléra a animácie.

Hlavný prístup spočíva v prepísaní metódy viewWillTransition(to:with:) vo vašom UIViewController. V tejto metóde môžete získať nové rozmery obrazovky a vykonať animáciu zmeny rozhrania pomocou objektu UIViewControllerTransitionCoordinator.

Príklad:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    
    coordinator.animate(alongsideTransition: { _ in
        // Tu aktualizujeme rozloženie alebo meníme UI prvky
        self.view.layoutIfNeeded()
    }, completion: nil)
}

Ak používate Auto Layout, zmena constraints a volanie layoutIfNeeded() v rámci animácie zabezpečí plynulý prechod.

Tiež môžete použiť UIView.animate pre vlastné animácie pri zmene orientácie.