[iOS] iOS6 から起動時に一度 Portraitになる挙動が変更された模様
iOS6 からは画面の回転関係の仕様が整理されたのか、いろいろと変更が入っている。
まず – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
は使えなくなったので、その対応が必要。
これはいろいろなところに情報が書かれている。
その対応は入れていたつもりだったのだが、今回 Landscape 状態でアプリを起動してみたところ部品が正しく配置されない問題が発生してしまった。
いろいろ試してみたところ、iOS5 までは正しく動作するが、iOS6 から問題が発生することがわかった。どうやらこれまで呼ばれていた didRotateFromInterfaceOrientation が呼ばれなくなっているようだ。
hayate-works Note: アプリ起動時にデバイスが横向きだったときのUIViewControllerメソッド呼び出し順
にあるとおり、iOS5 まではLandscapeで起動しても Portrait の状態から始まっていたのだが、iOS6 からはその挙動が変更されており、Landscape で起動してくるようだ。
このため、Landscapeで起動したときには上記 URL で書いている didRotateFromInterfaceOrientation (Landscape) が呼ばれなくなってしまった。
Landscapeで起動しているのに一度Portraitになっていたのはある意味これまでの挙動がおかしかったわけだが、didRotateFromInterfaceOrientation が呼ばれることを期待してそのタイミングで部品を配置するコードを書いていた場合、画面表示がおかしくなってしまうことがわかった。
例えばこちらも同じ問題に遭遇しているようだ でらうま倶楽部 : OpenGL ES系はとくに。 iOS6への対応で気をつける事
View Controller Programming Guide for iOS: Supporting Multiple Interface Orientations
とりあえず iOS6でも viewDidAppear のタイミングではLandscape状態になっているので、そのタイミングで部品を配置したところ正しく配置されたが、他に良い方法がありそうな気がする。
同じような議論あり
willAnimateRotationToInterfaceOrientation not being called « Sparrow Forum
関連記事
-
おんぷちゃん 1.9.0 MIDI対応
おんぷちゃん 1.9.0 で MIDI キーボードに対応しました。(まだ App Store にてレ
-
iPhoneアプリ おんぷちゃんアップデート 2010年7月 第1回
先月、iPhoneアプリおんぷちゃん(無料版)を1.3にアップデートして、いくつか機能を追加しました
-
新作アプリReibunを@marie__100さんに紹介していただきました
@marie__100さんに英語学習アプリ Reibunを紹介いただきました。ありがとうございました
-
iOS6 の Guided Access (Single App Mode) が便利そう
昨日のWWDC 2012 キーノートではiOS6の紹介がありいろいろと新機能の説明があったけ
-
[iPhone 6 Plus] カラビナ付きケースを買ってみた
iPhone5 はカラビナ付きケースに入れて腰に下げていたのだが、まだiPhone 6 Pl
-
[購入報告] ELECOM BluetoothオーディオレシーバLBT-ACR02HF
今乗っているHONDA Freed にはHDD付きカーナビが搭載されていて、CDからリッピングしたデ
-
リズムくんHD 1.2.1 で iOS11に対応しました
iPad用のリズムくんHD のiOS11対応が遅れてしまったため、2017年11月あたりからiOS1
-
[iPhone SDK] UILabel からポップアップメニューを表示してみる
今作っているアプリに UILabel を複数置いた画面があるが、その UILabelたちは編集
-
[iOS SDK] 実装ファイルでメンバ変数を宣言する
Xcode 4.x を導入したらいろいろ見慣れない記法があったので、いまさらながら一部まとめてみた。
-
iPhone UIデザイン用シート
paella さんのページにiPhone UIデザイン用シートがあったので利用させてもらう。8月に発