2009年3月
« 2月   4月 »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
2009/03/23

iPhoneの画面(UIView)を回転させる その1

iPhoneアプリは端末を持っている向きで、画面の向きを変えたり、デザインを変えたりするのが定番ですが、画面を回転する方法はいくつかあります。

今回は起動時の画面の向きの指定と、AutoRotateの指定について書きたいと思います。

iPhoneアプリを作る場合、画面が横向きの状態で起動したいとか、横向き固定でアプリを作りたい時があるかと思います。

起動時の向きを指定するには、Info.plistに以下の記述を追加すればOKです。

Key : UIInterfaceOrientation
Value : UIInterfaceOrientationLandscapeLeft

Valueは横向きの場合2種類あります。

UIInterfaceOrientationLandscapeLeftは、画面の左側にiPhoneのホームボタンが来る向きです。
UIInterfaceOrientationLandscapeRightは、画面の右側にiPhoneのホームボタンが来る向きになります。

通常の向き(デフォルト値)はUIInterfaceOrientationPortraitで、逆向きはUIInterfaceOrientationPortraitUpsideDownになります。

詳細はAPIリファレンスの「UIApplication Class Reference」で確認できます。

※初期のiPhoneSDKではInfo.plistで指定しても、起動直後に元の向きに戻ってしまうバグが有り、UIViewControllerのviewDidLoadの中で別途回転させる必要がありましたが、最新のSDKではInfo.plistでの指定のみでOKです。

Info.plistに記述しただけでは、起動後にiPhoneを縦に持ったら、縦向きに回転して、横向きに戻らなくなるかと思います。

この自動で回転する向きの指定は、UIViewControllerのshouldAutorotateToInterfaceOrientationメソッドで指定します。

以下のように記述すれば、UIInterfaceOrientationLandscapeLeft方向で固定になります。

-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft );
}

このメソッドの戻り値に、自動で回転させる向きではYESを指定することで、回転する向きを制御します。

回転後のViewを自動でリサイズするかどうか、リサイズする場合はどのようにリサイズするかは、UIVewのプロパティ「autoresizingMask」で指定できます。


※iPhoneアプリ開発に関する投稿を今から始めるiPhoneアプリ開発にまとめました。

Comments are closed.