AutoLayout
- 뷰에 주어진 제약조건에 따라 뷰의 크기와 위치를 동적으로 계산해 배치하는 것
- 외부 또는 내부의 변화에 동적으로 반응하여 유저 인터페이스 구성
External / Internal Changes
-
외적 변화 요소 (External Changes)
• 서로 다른 기기 및 스크린 크기
• 기기 회전
• iPad / iPhone+ 등에서 Split View 로 진입하거나 빠져나올 때
-
내적 변화 요소 (Internal Changes)
• 앱에서 보여지는 컨텐츠의 변화
• 국제화 지원 (텍스트, 날짜와 숫자, RTL 등)
• Dynamic Type 지원 (글꼴 크기)
Laying out a user interface
- 유저 인터페이스 구성을 위한 3가지 주요 접근 방식
- Frame 기반의 프로그래밍 방식
- Autoresizing masks
- Auto Layout
@Autoresizing은 story board에서 어렵지 않게 설정 할 수 있음

@Auto Layout
• 제약 조건을 이용해 유저 인터페이스 정의
• 뷰간의 관계 설정을 통한 크기와 위치 계산
• 내/외부 변경 사항에 동적으로 반응
• Frame 기반에 비해 느린 성능
-> Auto Layout 설정시 위치를 제대로 잡아야 화면에 나옴 ; 주의!!
-> 버튼별 기능들 활용법 익히기!
AutoLayout Anchors
NSLayoutAnchor
Horizontal Layout Anchors
- View 의 수평선, X축에 관련된 제약조건
- NSLayoutXAxisAnchor 클래스의 객체
• Leading anchor
• Trailing anchor
• Left anchor
• Right anchor
• Center-X anchor
-> 가로에서 다음과 같은 기능을 제공함

Vertical Layout Anchors
- View 의 수직선, Y축에 관련된 제약조건
- NSLayoutYAxisAnchor 클래스의 객체
• Top anchor
• Bottom anchor
• Center-Y anchor
• First baseline anchor
• Last baseline anchor
-> 세로에서 다음과 같은 기능을 제공함

Dimension Layout Anchors
- View 의 크기 정의
- NSLayoutDimension 클래스의 객체
• Width anchor
• Height anchor

-> 위의 기능들을 모두 확인해서 사용해 보며 StoryBoard와의 차이를 이해해야 함!!