【UIKit】デバイス向きとインターフェース向き

  • 5
    Like
  • 0
    Comment
More than 1 year has passed since last update.

デバイスのローテーションを検知して、アプリの見た目を最適化したい時に調べたこと。

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 }
}