1

AutolayoutでUIを管理している間に、向きの変更に自動サイズ変更を使用すると良いでしょう。autolayoutとautoresizingマスクを混在させても構いませんか?

多くのプログラマーが同時に両方に対して推奨していますが、私が理解する限り、それはうまくいくはずです。

自動調整マスクは簡単に再生できます。

私はマスク自体を自動サイズ変更すると、実際に私は大丈夫その大丈夫かどうかは、いくつかの深理由で説明できる場合、私は間違って

だ場合

translatesAutoresizingMaskIntoConstraints

が私を修正して信じている制約に変わりはないでしょうか?

答えて

1

私が知っている限り、オートレイアウトと自動サイズ変更マスクの両方を一緒に使用することは絶対に間違いありません。あなたがしたくないのは、レイアウトを管理するために自動サイズ変更マスクを使用しているビューに自動レイアウト制約を追加することです。マスクの自動サイズ変更の一般的な使用例は、ビューをビューに追加し、ビューを上、下、上、下に固定することです。その場合は単純に

let pinnedToSuper = UIView(frame: self.view.bounds) 
//all views default to .translatesAutoresizingMaskIntoConstraints if added programmatically 
pinnedToSuper.autoresizingMask = [.flexibleWidth,.flexibleHeight] 
self.view.addSubview(pinnedToSuper) 

各制約を追加するのと比べて、これがどれほど簡単かを確認してください。

autolayout以前は、iOSがレイアウトを手助けしなければならなかった自動認識マスクがありました。自動調整マスクは、バネやストラットとしても知られています。ビューが完全な四角形を維持(または円を描く)してアスペクト比を保持し、すべての方向のビューでサイズを変更したい場合、マスクを自動サイズ変更するユースケースの例があります。この場合、parentSoundに基づいて手動でビューのサイズを変更するには、layoutSubviewsにコードを追加する必要があります。これは、特に自動レイアウトによって個別に処理されているビューを隠している場合には、面倒な作業になることがあります。これはおそらく、両方を使用するときは注意が必要な理由です。私は、スーパービューの境界線に沿ったビューを追加するなどの単純なケースで使用する傾向があります。

一緒に使用する場合の重要な違い。

自動サイズ変更マスクを使用しているビューに自動レイアウト制約を追加しようとすると、実際の効果なしに矛盾する制約が発生する可能性があるので、それらをブレンドしてレイアウトを達成する必要はありません。ただし、autolayout制約を、自動サイズ変更マスクによって管理されているサブビューを持つビューに追加することはできますが、問題はありません。これは私の典型的な使用例です。私はこれがあなたの使い方に役立つことを願っています。

関連する問題