web-dev-qa-db-ja.com

UIViewのautoresizingMaskの目的は何ですか?

SO and developer.Apple.comUIViewautoresizingMaskについて読んだ後、目的が何であるかはまだわかりません。何ですか。このプロパティを設定する必要がある状況ですか?

23
SundayMonday

はい、ビューのサイズを手動で変更したくない場合は、設定が必要になることがよくあります。これは、アプリのメインビューではなく、サブビュー(つまり、画面全体を占めないビュー)に主に役立つことに注意してください。

通常、次の場合、ビューのサイズを変更する必要があります。

  • デバイスが回転します
  • 追加のビュー(広告など)がビューに追加されるため、既存のサブビューの使用可能なスペースが少なくなります。

たとえば、2つのボタンがあり、1つは左上隅に、もう1つは右上隅にあるビューがあるとします。ビューが縦向きから横向きに移行するときにボタンが広くなるようにするには、FlexibleLeftMarginを右ボタンに、FlexibleRightMarginを左ボタンに設定する必要があります。

編集:autoresizingMaskは、デバイスを回転させたり、新しいサブビューを追加したりしたときに、奇妙な穴やオーバーラップが表示された場合に最初に確認するものでもあります。サブビューにこれらのマスクを適切に設定すると、サブビューを手動でレイアウトしなくても、両方の方向で見栄えの良いビューを取得できることがよくありますが、通常はある程度の実験が必要です。

Edit2 :(これはまだ賛成票を集めているので)自動サイズ変更マスクは現在、ほとんどが「自動レイアウト」に取って代わられています。これにより、ビューのサイズと位置をより柔軟に制限できます。そうは言っても、translatesAutoresizingMaskIntoConstraintsは、動的に追加されたビューに役立つ場合があります。

24
SVD

目的は、UIViewがサイズ変更、向きの変更、テーブルビューセルでの編集コントロールの表示などによってスーパービューが変更されたときに、適切にシフトおよびサイズ変更することです。

4
Kyr Dunenkoff