iOS Collezioni di tratti

Esempio

In un'app iOS, l'interfaccia utente può assumere una delle diverse forme e dimensioni generali. Questi sono definiti utilizzando le classi di dimensioni , che sono disponibili attraverso una collezione di tratti di visualizzazione o vista del controllore.

Apple definisce due classi di dimensioni: regolari e compatte . Ciascuna di queste classi dimensionali è disponibile su entrambi gli assi del dispositivo ( orizzontale e verticale ). La tua app potrebbe esistere in questi quattro stati per tutta la sua durata. Come una scorciatoia, gli sviluppatori spesso descrivono una combinazione di classi di dimensioni dicendo o scrivendo le due classi di dimensioni, con l'asse orizzontale per primo: "Compatto / Regolare" descrive un'interfaccia che è orizzontale compatta ma verticale regolare.

Nella tua app, utilizza i metodi sul protocollo UITraitEnvironment per verificare la tua classe di dimensioni corrente e rispondere alle modifiche:

class MyViewController: UIViewController {
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("Horizontal size class: \(traitCollection.horizontalSizeClass)")
        print("Vertical size class: \(traitCollection.verticalSizeClass)")
    }

    override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
        super.traitCollectionDidChange(previousTraitCollection)
        print("Trait collection changed; size classes may be different.")
    }
}

Sia UIView che UIViewController sono conformi a UITraitEnvironment, quindi puoi guardare la tua attuale raccolta di tratti e gestire le modifiche in sottoclassi di entrambi.