SO とdeveloper.apple.comUIView
のについて読んだ後でも、目的が何であるかはまだわかりません。このプロパティを設定する必要があるのはどのような状況ですか?autoresizingMask
2 に答える
はい、ビューのサイズを手動で変更したくない場合は、多くの場合、設定する必要があります。アプリのメイン ビューではなく、サブビュー (つまり、画面全体を使用しないビュー) で主に役立つことに注意してください。
通常、次の場合、ビューのサイズ変更が必要になることがあります。
- デバイスが回転する
- 余分なビュー (広告など) がビューに追加されるため、既存のサブビューの使用可能なスペースが少なくなります。
たとえば、ビューに 2 つのボタン (1 つは左上隅、もう 1 つは右上隅) があるとします。ビューが縦向きから横向きに切り替わったときにボタンの幅を広げるには、FlexibleLeftMargin を右ボタンに、FlexibleRightMargin を左ボタンに設定する必要があります。
編集: autoresizingMask は、デバイスが回転したり、新しいサブビューが追加されたときに奇妙な穴やオーバーラップが表示された場合に最初に確認するものでもあります。サブビューのこれらのマスクを適切に設定すると、サブビューを手動でレイアウトしなくても、両方の方向で見栄えの良いビューを取得できることがよくありますが、通常は多少の実験が必要です。
Edit2: (これはまだ賛成票を集めているため) 自動サイズ変更マスクは現在、ほとんどが「自動レイアウト」に取って代わられています。これにより、ビューのサイズと位置をより柔軟に制限できます。そうは言っても、translatesAutoresizingMaskIntoConstraints は、動的に追加されたビューに役立つ場合があります。
目的は、サイズ変更、向きの変更、テーブルビュー セルでの編集コントロールの表示などによってスーパービューが変更されたときに、UIView が適切にシフトおよびサイズ変更されることです。