Trait CollectionsとSize Class
1369 ワード
viewとviewControllは、traitCollectionプロパティとメソッドを持つUItraitEnvironmentプロトコルに準拠しています.
この属性はUItraitCollectionタイプで、現在のディスプレイの表示スケール1,2,3 userInterfaceIdiomは現在のデバイスタイプを記述し、phone、pad、tv、carplay horizontalSizeClass、verticalSizeClassはすべて列挙であり、SizeClassはhorizontalSizeClassとverticalSizeClassの値がregularであることを意味する.ipadで実行するhorizontalSizeClassとverticalSizeClassの値はすべてcompactで、iphone水平方向(6 pと7 pを除く)で実行するhorizontalSizeClassはregular、verticalSizeClassはcompact、6 pと7 pの水平方向で実行するhorizontalSizeClassはcompact、verticalSizeClassはregular、これらの属性を利用するiphoneの垂直方向で実行することにより、appの実行環境を得ることができ、異なる環境での適合を行うことができる.appの実行環境が変化すると、UItraitEnvironmentプロトコルは、appの適合のために上記の方法を通知する.上記の方法は、変更後の情報を得るためにselfを使用することができる前の情報をパラメータとして提供する.traitCollection
UItraitCollectionタイプのインスタンスを自分で作成することもできます
最後の初期化メソッドは、前の3つのインスタンスを組み合わせます.前の3つのインスタンス設定のプロパティが重複している場合は、配列の最後のインスタンス設定に準じます.異なるプロパティ設定を組み合わせ
UItraitCollectionインスタンスは、次の方法で比較することもできます.
public func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?)
この属性はUItraitCollectionタイプで、現在のディスプレイの表示スケール1,2,3 userInterfaceIdiomは現在のデバイスタイプを記述し、phone、pad、tv、carplay horizontalSizeClass、verticalSizeClassはすべて列挙であり、SizeClassはhorizontalSizeClassとverticalSizeClassの値がregularであることを意味する.ipadで実行するhorizontalSizeClassとverticalSizeClassの値はすべてcompactで、iphone水平方向(6 pと7 pを除く)で実行するhorizontalSizeClassはregular、verticalSizeClassはcompact、6 pと7 pの水平方向で実行するhorizontalSizeClassはcompact、verticalSizeClassはregular、これらの属性を利用するiphoneの垂直方向で実行することにより、appの実行環境を得ることができ、異なる環境での適合を行うことができる.appの実行環境が変化すると、UItraitEnvironmentプロトコルは、appの適合のために上記の方法を通知する.上記の方法は、変更後の情報を得るためにselfを使用することができる前の情報をパラメータとして提供する.traitCollection
UItraitCollectionタイプのインスタンスを自分で作成することもできます
let tcdisp = UITraitCollection(displayScale: 2.0)
let tcphone = UITraitCollection(userInterfaceIdiom: .phone)
let tcreg = UITraitCollection(verticalSizeClass: .regular)
let tc = UITraitCollection(traitsFrom: [tcdisp,tcphone,tcreg])
最後の初期化メソッドは、前の3つのインスタンスを組み合わせます.前の3つのインスタンス設定のプロパティが重複している場合は、配列の最後のインスタンス設定に準じます.異なるプロパティ設定を組み合わせ
UItraitCollectionインスタンスは、次の方法で比較することもできます.
open func containsTraits(in trait: UITraitCollection?) -> Bool