2009-11-30
■ [iPhone][Develop] UIActionSheet表示中に、アクションシートを回転させることはできない
![[iPhone][Develop] UIActionSheet表示中に、アクションシートを回転させることはできない - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント [iPhone][Develop] UIActionSheet表示中に、アクションシートを回転させることはできない - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント](http://r.hatena.ne.jp/images/popup.gif)
表題のとおりです。
UIActtionSheetは、たとえどんなビューに表示させていようとも回転してくれません。確認した時の状況を簡単に整理すると以下のとおりです。
| showInView:に渡すビュー | ver. | 振る舞い |
|---|---|---|
| self.window | - | 回転には対応しない。常にホームボタン側からシートが出てくる |
| self.tabBarController.view | 2.2.1 | 表示する時はそのときの下方向から出てくるが、表示中の回転はできない。ただし後ろのビューが回転する。 |
| self.tabBarController.view | 3.1.2 | 表示する時は、そのときの下方向から出てくるが、表示中の回転はできない。後ろのビューもシート表示中は回転せず、シートでの処理が終わってから回転する |
| self.view | 2.2.1 | Cancelボタンが押せなくなるので使ってはいけない。表示する時はそのときの下方向から出てくるが、表示中の回転はできない。ただし後ろのビューが回転する。 |
| self.view | 3.1.2 | Cancelボタンが押せなくなるので使ってはいけない。表示する時はそのときの下方向から出てくるが、表示中の回転はできない。後ろのビューもシート表示中は回転せず、シートでの処理が終わってから回転する |
上の注意点を、以前の記事(リンク)で出ていた問題も定性しつつ記します。
- UITabBarControllerで表示している時にshowInView:にself.viewを指定すると、一番下のボタンが効かなくなってしまう。showInView:にはself.tabBarController.viewを渡してあげること
- self.view.windowを渡しても、windowは回転に対応しないのであまり良い方法ではない(以前の記事ではwindowを渡す方法を紹介していました。失礼しました)
以上です。
コメントを書く