2010-12-29 8 views
1

現在、プロジェクトを進めており、ポートレートと風景の両方の方向をサポートする必要があります。私はいくつかの本を読んでおり、それらのすべてが私に異なることを教えています。私が横向きの向きをサポートしたいと思うビューは簡単です。それは、UINavigationBarであり、viewcontrollersビューに添付されているUIWebviewです。私はプログラム的に見解を作った。 iPhoneでビューを自動サイズ調整する

が、私はこの方法を使用することは正しいことです:
- (無効)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation時間:(NSTimeInterval)期間;

私は、iOS 3より前には、呼び出された2つの他の方法があることを知りました。しかし、私はiOS 3の下で自分のアプリをターゲットにしていません。

このコードは動作していますが、このビューでInterfaceBuilderを使用したくないので、プログラミングによる方法が正しいかどうかです。

Codesnippet

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)x duration:(NSTimeInterval)duration { 
    if (UIInterfaceOrientationIsLandscape(x)) { 
     topbar.frame = CGRectMake(0.0f, 0.0f, 480.0f, 44.0f); 
    } 
} 

を(作業)そして、それは私がすべてのアニメーションを適用する必要はありません、iOSのは、この権利を処理することが正しいのですか?

答えて

3

あなたははい、あなたがアニメーションの一部を心配する必要はありませんインターフェースの向き

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ 

//Set the boolean variable for interface orientation condition. 

} 


- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration { 
//Set the coordinates of the Views you are using. 

} 

をサポートするために、2つの方法の下に使用することができ、OSはそれの世話をします。

+0

はあなたにアーディティヤをありがとう! – LuckyLuke

1

使用している方法は、ユーザーインターフェイスのカスタム変更です。自分でアニメーションを行う必要があります。 (そのため、Durationパラメータがあります)サイズを変更する必要のある2つのビューだけがある場合は、自動サイズ変更マスクを設定できます。

すなわち:

webView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

+0

ありがとうございますが、自動認識マスクを使用するにはどうすればよいですか?私はあなたが上に書いたように努力したが、うまくいかなかった。 CGRectMake構造体に固定値を設定しました。私はそこに別のものを書かなければならないでしょうか? – LuckyLuke

+0

自動サイズ調整マスクが設定されている場合、iOSはこれらを上書きします。 WebViewのために必要と思われるWebview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; – Maffo

関連する問題