デバイスのローテーションを検知して、アプリの見た目を最適化したい時に調べたこと。
UIDeviceOrientation
UIDviceクラスで定義されている。どうやらデバイス自体の向き。
つまり3次元で取得できる。
public enum UIDeviceOrientation : Int {
case unknown
case portrait // Device oriented vertically, home button on the bottom
case portraitUpsideDown // Device oriented vertically, home button on the top
case landscapeLeft // Device oriented horizontally, home button on the right
case landscapeRight // Device oriented horizontally, home button on the left
case faceUp // Device oriented flat, face up
case faceDown // Device oriented flat, face down
}
extension UIDeviceOrientation {
public var isLandscape: Bool { get }
public var isPortrait: Bool { get }
public var isFlat: Bool { get }
public var isValidInterfaceOrientation: Bool { get }
}
UIInterfaceOrientation
UIAppllicationクラスで定義されている。画面の縦表示か横表示。
分かりやすくいうと2次元の判断。
public enum UIInterfaceOrientation : Int {
case unknown
case portrait
case portraitUpsideDown
case landscapeLeft
case landscapeRight
}
extension UIInterfaceOrientation {
public var isLandscape: Bool { get }
public var isPortrait: Bool { get }
}