0

ポートレートモードのインターフェイスビルダーにXIBがあり、ビュー全体に5つのUILabelが等間隔に配置されています。iPhoneを右または左に回転させたときに、ラベルをビュー全体に均等に広げて、余分な画面幅を最大限に活用したいと思います。

Interface BuilderのSize&Positionビットを使用して1つのコントロールでこれを非常に簡単に行うことができますが、これを行うために他のコントロールを設定するにはどうすればよいですか?

これはプログラムで行う必要がありますか?

ありがとう

マイク ここに画像の説明を入力してください

4

2 に答える 2

0

UIViewが持つautoresizingMaskプロパティを設定することで、それを試すことができます。あなたがそれをあなたが望むことをするようにさせることができれば、これは最も簡単な方法でしょう。ビューを作成または初期化する場所であればどこでも、これを設定できます。

view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

この方法では、5つのラベルすべての正確な位置を取得できない可能性があります。しかし、あなたは間違いなくそれらの少なくともいくつかのためにそれを使うことができるはずです。残りの部分については、UIViewControllerwillRotateToInterfaceOrientation:duration:メソッドを実装する必要があります。これはiPadが回転するたびに呼び出され、そのメソッド内でラベルの場所を設定できます。

于 2011-03-09T15:14:52.060 に答える
0

これは、コントロールがxibの周囲にどのように配置されているかによって異なります。ほとんどの場合、InterfaceBuilderの「Autosizing」の下に表示されるプロパティを使用してコーディングを回避できるはずです。基本的に、ここで行うことはすべて、を使用してコードで行うことができます

view.autoresizingMask = UIViewAutoresizing<and the various masks here>

要素を再配置するようにビューに指示する方法でviewDidLoadメソッドを実装することを忘れないでください

-(void)viewDidLoad{

self.view.autoresizesSubviews = YES;

[super viewDidLoad];

}

また、便利な点は、ipadで、ナビゲーションコントローラー内にビューコントローラーを埋め込むと、ipadが回転とサイズ変更の問題の大部分を処理できるようになることです。

于 2011-03-09T15:30:06.680 に答える