1

コール ステータス バーが表示されたとき (ステータス バーの高さの変更)、すべてのビューのコンポーネントを自動サイズ変更または自動移動する正しい方法は何ですか?

ここに画像の説明を入力

私は使用しています:

- (void) application:(UIApplication*)application 
                           didChangeStatusBarFrame:(CGRect)oldStatusBarFrame { }

しかし、この方法では、すべての要素のフレームを手動で設定する必要があります。ないのが一番だと思います。


インターフェイス ビルダー パネルでオートサイズを設定しようとしましたが、ステータス バーがフレームを変更しても何も変わりません。 ここに画像の説明を入力

すべてのビューのすべての要素にフレームを設定せずに、すべてのビューでこれを行う正しい方法はありますか?

ありがとう。

4

1 に答える 1

0

使用- (void) application:(UIApplication*)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrameはこれを行うのに適した場所ではありません。

ソリューションは、目的のレイアウトによって異なります。十分に単純な場合、自動サイズ調整マスクは正常に機能します。より複雑なレイアウトの場合は、サブクラスUIView化し、サブビューのコンテナーとして使用することができます。次に、layoutSubviews をオーバーライドして、ビューの境界に応じて正しいレイアウトを実行できます (コンテナのサイズが自動変更されます)。

自動サイズ変更の場合: たとえば、すべてのラベルを下の境界線に対して固定し、高さを固定したい場合: 自動サイズ変更ダイアログで下のスペースをクリックし、高さの矢印を削除します。

于 2012-07-03T08:41:45.220 に答える