Swiftで端末の回転(向き)状況を取得できるが、状況によって取れない件

Swift Swift
Swift

端末がどの向き、縦向きか横向きなのか?
UIDevice.current.orientationで取得する事ができます。

let orientation = UIDevice.current.orientation
let isFlat = orientation.isFlat
let isLandscape = orientation.isLandscape
let isPortrait = orientation.isPortrait

この記述で、縦向き、横向き、平行?の向き情報がBool値で取得できます。
めちゃくちゃ簡単ですね。・ω・

個人的なイメージとしては、必ずどれかがtrueになるイメージでした。
端末が起動している限り、どれかの向きであるはずだから・・・

しかし、状況によって、isFlat、isLandscape、isPortraitすべてfalseのときがありました。

アプリが起動後、一度も端末が回転していない時・・・
例えば、机に置いた状態でアプリを起動して全く回転が発生していない時。

isFlat、isLandscape、isPortraitがfalseでした・ω・

UIDevice.current.orientationで取得できるのは、アプリ起動後の情報だけなのでしょうか・・・??
ということで、下記のように対応。

if isLandscape == false && isPortrait == false && isFlat == false {
    let bounds = UIScreen.main.bounds
    if bounds.width > bounds.height {
        // 横向き
        
    } else {
        // 縦向き
        
    }
            
}

他に取得方法があれば教えてください(T_T)

コメント

タイトルとURLをコピーしました