2012-04-02 9 views

答えて

12

あなたはあなたの答えhere

EDIT見つける:ブログから直接コピー:

  • をinitがlayoutSubviewsが(当たり前)と呼ばれることはありません
  • addSubviewはlayoutSubviewsが上で呼び出されますビューが追加されているビュー(ターゲットビュー)、およびターゲットビューのすべてのサブビュー
  • setFrameは、ビューのサイズを設定している場合にのみ、ビューのlayoutSubviewsをインテリジェントに呼び出しますフレームのメーターがスクロール
  • 異なるUIScrollViewのはscrollViewに呼び出されるlayoutSubviewsを引き起こし、それがデバイスのみ(応答viewControllersプライマリビュー)
  • removeFromSuperview親ビューにlayoutSubviewを呼び出し回転スーパー
  • だ - layoutSubviewsをスーパービューでのみ呼び出されます
+3

+1です。しかし、あなたの答えの中のリンクからの説明のいくつかをここに追加することを検討してください。そうすれば、将来的にリンクがダウンしても、あなたの答えはまだ有効です。 –

1

あなたは正しいですか?レイアウトのサブビューが自動的に呼び出されます。それに関する詳細については、ドキュメントをチェックしてください。

ドキュメントでは、WHENが呼び出されるとは特に言及していません。しかし、かなり頻繁に呼び出されることをかなり保証することができます。サブビューのサイズを変更したり、ストラットやスプリングを使用して移動したりできないときは、このメソッドをオーバーライドするだけです。 1つの例では、デバイスの向きが変更されたときに、サブビューの位置が再編成されます。

1

layoutSubviewsメソッドは、システムがビューを再レイアウトする必要があると判断したときはいつでも呼び出されます。たとえば、ビューのフレームが変更された場合、またはサブビューが追加された場合などです。これを手動でトリガする必要がある場合は、setNeedsLayoutメソッドを呼び出すことができます。

関連する問題