iphoneでDevice OrientationのUpside Down が効かない

iphoneでDevice OrientationのUpside Down が効かなくなってた。

少なくとも、私は、XcodeでDevice OrientationのUpside Downをチェック

しても、デバイスの回転に合わせて画面のレイアウトが変更しなかった。怒

つまり、デバイスを回転しても、iphoneのデバイスの向きが

ボタンが上にある場合は、レイアウトが反映されないってことです。

なぜ、昔は、動いてたよね。

原因の調査をして、下記のようにして解決しました。


  • 解決策

main のUiViewController で以下のコードを記述する。

    override func supportedInterfaceOrientations() -> Int{
        return Int(UIInterfaceOrientationMask.All.rawValue)
    }
  • 説明


ルートとなるコントローラにて、
supportedInterfaceOrientations メソッドを上記のように
オーバライドすれば良い。
原因は、iphone の方向のマスクが、Upside Down の値が0のため、
回転しないようにになっています。他の方向の場合は、1となっているので、
上記のコードでむりやり有効にすることです。

  • 補足


デバイスが回転した場合には、

supportedInterfaceOrientations メソッドが呼ばれます。

supportedInterfaceOrientations メソッドが呼ばれた後には

shouldAutorotate メソッドが呼ばれるが、その際、

falseを返すと回転をしない。

管理者オススメのアプリ

簡単に日々のスケジュールを管理できる無料のphoneアプリです。
スケジュール、シフト管理、TODO,お小遣い管理、メモなどいろいろ使用できるアプリ。
メニューの並び替えも自由!


すごい手帳を使ってみる

アクセス数: 無料カウンター




トラックバック(0)

トラックバックURL: http://smartwolf.sakura.ne.jp/Blog/mt-tb.cgi/187

コメントする

ウェブページ

Powered by Movable Type 5.2.7