2017-12-23 6 views
0

UIDevice.orientation変数にバグが見つかりました。デバイスの向きが間違って返されました

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(true) 
    if UIDevice.current.orientation.isPortrait{ 
     print("Orientation is Portrait") 
    } 
    else{ 
     print("Orientation is Landscape") 
    } 
} 

すべてが、私は私の手でデバイス(iPhoneの5)を保持している場合正常に動作しますが、それは私が手にテーブルの上に平らにあれば、すべてが縦に示されている場合でも、「印刷の向きを横である」と、デバイス自体があります回転しない。 これに対して何か可能な方法はありますか?

//このテストはボタンアクション内でも失敗します。

+0

'viewDidAppear'はこのテストを実行するのに最適な場所ではありません。 'override func viewDidLayoutSubviews(){super.viewDidLayoutSubviews()...}'でこのテストを実行するときに同じ結果が得られますか? – slickdaddy

+0

私はviewDidLayoutSubviewsでそれを取得しませんが、私はボタンクリックイベントに入れます。 – LarsGvB

+0

偉大な、問題解決。 – slickdaddy

答えて

1

肖像画や風景以外の方向があります。あなたは肖像画をチェックしており、他のすべてが風景であると仮定しています。そうではない。この場合、実際の向きは「上向き」である可能性が高い。

+0

ありがとう私は明日それをテストするつもりです。 – LarsGvB

+0

そのプロパティは "isFlat"です。 – LarsGvB

関連する問題