AutoLayout
구성
1. Constraints 제약조건
- 뷰의 크기, (상대적) 위치를 정의하는 규칙
- 주로 Interface Builder 또는 코드로 설정됨
2. Autoresizing Masks
- Autoresizing masks는 iOS 6 이전에 사용된 레이아웃 시스템
- Constraints를 사용하여 레이아웃을 구성하는 것이 더 강력하고 유연한 방법
translatesAutoresizingMaskIntoConstraints = false
를 해줘야함
기본적인 Constraints 속성
- Left/Right (Leading, Trailing)
view.leftAnchor.constraints(equalTo: superview.leftAnchor, constant: 20).isActive = true
- Top/Bottom
view.topAnchor.constraint(equalTo: superview.topAnchor, constant: 20).isActive = true
- Width/Height
view.widthAnchor.constraint(equalToConstant: 100).isActive = true
- CenterX/CenterY
view.centerXAnchor.constraint(equalTo: superview.centerXAnchor).isActive = true
- Safe Area
view.topAnchor.constraint(equalTo: view.superview.safeAreaLayoutGuide.topAnchor).isActive = true
- Multiplier
view1.widthAnchor.constraint(equalTo: view2.widAnchor, multiplier: 0.5).isActive = true
- Priority
view.widthAnchor.constraint(equalTo: superview.widthAnchor, constant: 20).priority = .required
- Aspect Ratio
view.widthAnchor.constraint(equalTo: view.heightAnchor, multiplier: 2).isActive = true
- Activation/Deactivation
constraint.isActive = false