2009-03-23 13 views
0

私はアプリケーション全体の風景を指定することができますが、部分的に風景に、部分的に肖像画になっている場合はどうなると思いますか?PotraitとLandscape Viewsはどのように扱いますか?

現在、私は基本的に画像であるいくつかのビューを持っています。これらの画像は回転されており、アプリケーションの特定のセクションが横長モードになることがわかっています。私のすべてのUILabelsもこの効果を与えるために回転しています。

私の質問は、これを処理するより良い方法があるかどうかです。実行時にプログラム的に向きを設定する方法はありますか?この場合、私はイメージ/ユーラベルを回転させる必要がなくなりました。

明確にするために、私は自動回転機能は必要ありません。今実装されている方法は、アプリに含めるすべての機能をキャプチャしていますが、もっと面倒な方法があるかどうかを知りたいだけでした。同じアプリケーション内のランドスケープ/ポートレートビューを処理します。

答えて

4

いつでも回転を強制できます。

UIApplication *application = [UIApplication sharedApplication];  
[application setStatusBarOrientation: UIInterfaceOrientationWHATEVER animated:NO]; 

私の現在のアプリケーションは主に風景ですが、ポートレートビューはいくつかあります。ユーザーが回転できるはずのビューに対応するビューコントローラでは、回転を許可していますが、アニメーションはできません。これにより、NIB内の別のビューに切り替えることができます。アニメーション中にビュー上に重ね合わせると、奇妙なスライドオフスクリーンのねじれが発生することはありません。

この情報が役立ちますように!

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
if (interfaceOrientation == UIInterfaceOrientationPortrait) { 
    rotatingToPortrait = YES; 
    [UIView setAnimationsEnabled:NO]; 
    return YES; 
} else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) { 
    rotatingToPortrait = NO; 
    [UIView setAnimationsEnabled:NO]; 
    return YES; 
} 
// Catch upside-down 
return NO; } 

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
[UIView setAnimationsEnabled:YES]; 
if (rotatingToPortrait) { 
    // Swap in portrait view here 
} else { 
    // Swap it out here 
} } 
+0

私自身の経験から、あなたがアニメーションを停止したい場合は、それは本当に、コントローラの切り替え時-shouldAutorotateToInterfaceOrientationが呼び出されるよう-willRotateToInterfaceOrientationにする必要があります。 – mattmook

0

現在、私は向きをプログラム的に制御する方法は知らない。デバイスに「現在の風景に回転する」と伝える方法がないことを意味します。あなたはしかし、いつ、どのようにそれらの機能、コントローラがどのような方向性をサポートしてどのようなビューを指定して、関数をオーバーライドすることにより、姿勢変化に対応することができます(UIInterfaceOrientation)interfaceOrientation

:(BOOL)shouldAutorotateToInterfaceOrientation

:あなただけのようなものを指定することができますシステムによって決定されます。 UIDeviceクラスからより詳細なメッセージを取得することもできます。

あなたが言っていることを正しく理解していれば、アプリは本質的に常に1つの方向にありますが、アプリの特定の部分がポートレート/ランドスケープモードであるように、丸い穴に四角形を合わせようとしているように聞こえますが、iPhoneの向きAPIはそのような振る舞いのために設計されたものではなく、APIを使って作業するほうが良いです。

関連する問題