【Swift】translatesAutoresizingMaskIntoConstraintsって結局なんなんだっけ?
Swift
のコードベースでAutoLayout
を設定する時によくやるこれ。
view.translatesAutoresizingMaskIntoConstraints = false view.widthAnchor.constraint(equalToConstant: 18).isActive = true view.heightAnchor.constraint(equalToConstant: 18).isActive = true
結論
translatesAutoresizingMaskIntoConstraints
は、View
のレイアウトをAutoresizingMask
、又はAutoLayout
で構築するかを決定します。true
の場合は、AutoresizingMask
でレイアウトが構築されるようになり、false
の場合は、AutoLayout
でレイアウトが構築されるようになります。また、Interface Builder
などでView
を追加した場合は、システムがこのプロパティを自動的にfalse
に設定するようです。
ちなみに、AutoresizingMask
は親ビューのbounds
に合わせてレイアウトを調整する方式で、View
はframe
・bounds
・center
などの要素を調整することができます。
AutoLayout
に関しては、馴染み深いと思うので特に触れませんが、基本的にView
の上下左右のレイアウトが決まるように制約を行う必要があります。
参考
- https://developer.apple.com/documentation/uikit/uiview/1622572-translatesautoresizingmaskintoco
- https://dev.classmethod.jp/articles/new-auto-layout-feature/