2011-08-10 17 views
1

いくつかの条件に基づいてViewControllerを回転させたいとします。 shouldAutorotateToInterfaceOrientationの問題は、ビューが常にPortrait/Landscape(Interface Builderで設定された)方向から始まり、ユーザーが正しいモードを使用するためにipadを回転させる必要があることです。この動作を変更するにはどうすればよいですか? ありがとうございます。プログラムでipadを回転させずにビューの向きを変更する

答えて

1

ビューにトランスフォームを適用します。

view.transform = CGAffineTransformMakeRotation(M_PI);

あなたは変更をアニメーション化するアニメーションをUIViewの使用することができます。

+0

私はあなたに知らせてあげます。ありがとうございました。もう一つのこと:Interf Builderで定義されている自動サイズ設定ルールを使用しますか? –

+0

いいえ、上記のコードはビューのサイズを変更せず、回転のみします。ドキュメンテーションによると、非恒等変換が適用されたビューは、frameプロパティに未定義の値を持つことに注意してください。 – Jiri

1

また、あなたのInfo.plistでこれを追加してみてください:

<key>UISupportedInterfaceOrientations</key> 
<array> 
    <string>UIInterfaceOrientationPortrait</string> 
    <string>UIInterfaceOrientationPortraitUpsideDown</string> 
    <string>UIInterfaceOrientationLandscapeLeft</string> 
    <string>UIInterfaceOrientationLandscapeRight</string> 
</array> 

出典:ipad default-landscape not displaying

0
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

これはあなたが使用できるdevice.Likewiseを回転させずにpotraitモードに向きを変更します 風景も

+0

これはうまく動作しますが、これはapiドキュメントにはありません。したがって、あなたはおそらくプライベートAPIに関するAppleのルールを破っており、使用しているとあなたのアプリケーションを却下する可能性があります。 – erik

+1

このmehtodは廃止され、もう存在しません........ –

関連する問題