이러한 변경사항은 대부분은 실행 시간에 발생
인터페이스의 동적으로 상대적인 좌표가 필요한 경우에 유용
오토레이아웃의 속성은 정렬 사각형을 기반
Width
: 정렬 사각형의 너비
Height
: 정렬 사각형의 높이
Top
: 정렬 사각형의 상단
Bottom
: 정렬 사각형의 하단
Baseline
: 텍스트의 하단
Horizontal
: 수평
Vertical
: 수직
Leading
: 리딩, 텍스트를 읽을 때 시작 방향
Trailing
: 트레일링, 텍스트를 읽을 때 끝 방향
CenterX
: 수평 중심
CenterY
: 수직 중심
UIView클래스
의 var safeAreaLayoutGuide: UILayoutGuide
로 접근Item1
: 방정식에 있는 첫 번째 아이템(B View)
Attribute1
: 첫번째 아이템에 대한 속성. 이 경우, B View의 리딩
Multiplier
: 속성 2에 곱해지는 값. 이 경우 1.0
Item2
: 방정식에 있는 두 번째 아이템(A View)
Attribute2
: 두번째 아이템에 대한 속성. 이 경우, A View의 트레일링
Constant
: 두번째 아이템의 속성에 더해지는 상수 값
'B View의 리딩은 A View의 트레일링의 1.0배에 8.0을 더한 위치'
콘텐츠 허깅 우선도(Content hugging priority)
: 콘텐츠 고유 사이즈보다 뷰가 커지지 않도록 제한. 다른 제약사항보다 우선도가 높으면 뷰가 콘텐츠 사이즈보다 커지지 않음.콘텐츠 축소 방지 우선도(Content compression resistance priority)
: 콘텐츠 고유 사이즈보다 뷰가 작아지지 않도록 제한. 다른 제약사항보다 우선도가 높으면 뷰가 콘텐츠 사이즈보다 작아지지 않음.레이아웃 마진 가이드(Layout Margins Guide)
: 레이아웃 마진에 따라 형성되는 사각의 프레임 영역오토레이아웃을 코딩으로 구현하여 제약(Constraint)을 만들기 위해 앵커(Anchor)를 사용
var constraints: [NSLayoutConstraint]
// 뷰에 부여한 제약사항들은 담은 배열
var bottomAnchor: NSLayoutYAxisAnchor { get }
// 뷰 프레임의 하단부 레이아웃 앵커
var centerXAnchor: NSLayoutXAxisAnchor { get }
// 뷰 프레임의 수평 중심부 레이아웃 앵커
var centerYAnchor: NSLayoutYAxisAnchor { get }
// 뷰 프레임의 수직 중심부 레이아웃 앵커
var heightAnchor: NSLayoutDimension { get }
// 뷰 프레임의 높이를 가리키는 레이아웃 앵커
var leadingAnchor: NSLayoutXAxisAnchor { get }
// 뷰 프레임의 리딩을 가리키는 레이아웃 앵커
var topAnchor: NSLayoutYAxisAnchor { get }
// 뷰 프레임의 상단부 레이아웃 앵커
var trailingAnchor: NSLayoutXAxisAnchor { get }
// 뷰 프레임의 트레일링을 가리키는 레이아웃 앵커
var widthAnchor: NSLayoutDimension { get }
// 뷰 프레임의 넓이를 가리키는 레이아웃 앵커
출처: 야곰