귀염둥이의 메모

[iOS] Auto Layout(오토 레이아웃) 본문

iOS

[iOS] Auto Layout(오토 레이아웃)

겸둥이xz 2021. 2. 8. 17:51
반응형

AutoLayout(오토 레이아웃)

아이폰 기종이 다양한 사이즈와 화면 비율로 출시가 되면서, 사이즈에 구애받지 않고 시각적으로 동일한 화면을 구현 해야하는데 이를 위한 가장 편리하고 권장되는 방법이 오토레이아웃이다.

- 뷰의 제약 사항을 바탕으로 뷰 체계 내의 모든 뷰의 크기와 위치를 동적으로 계산한다.

- 애플리케이션을 사용할 때 발생하는 외부 변경에 동적으로 반응하는 사용자 인터페이스를 가능하게 한다.

- 인터페이스의 절대적인 좌표가 아닌 동적으로 상대적인 좌표가 필요한 경우에 유용함.

외부 변경(External Changes)

- 슈퍼뷰의 크기나 모양이 변경될 때 발생함 ex) 장치 회전(iOS).

- 아이패드의 Split View를 사용하거나 사용하지 않는 경우(iOS).

- 다른 크기의 클래스, 스크린을 지원하기 원하는 경우.

내부 변경(Internal Changes)

- 사용자 인터페이스의 뷰의 크기 또는 설정이 변경되었을 떄 발생함.

- 앱 변경에 의해 콘텐츠가 보여지는 경우

- 앱이 국제화를 지원하는 경우

- 앱이 동적 타입을 지원하는 경우

오토레이아웃 속성

Safe Area (iOS 11부터 사용가능)

- 상태바, 내비게이션바, 툴바, 탭바를 가리는 것을 방지하는 영역.

- 기존의 상/하단 레이아웃가이드(Top/BottomLayout Guide)를 대체하며, 하위 버전에도 호환하여 작동.

제약(Constraint)

- 뷰 스스로 또는 뷰 사이의 관계를 속성을 통하여 Constraint를 정의한다.

고유 콘텐츠 크기(Intrinsic Content Size)

- 뷰의 고유 콘텐츠 크기는 뷰가 갖는 원래의 크기로 생각할 수 있다.

- 레이블의 고유 콘텐츠 크기는 레이블의 텍스트의 크기이고, 이미지의 고유 콘텐츠 크기는 이미지 자체의 크기이다.

제약 우선도(Constrint Prioriteis)

- 뷰의 고유 콘텐츠 크기를 각 크기에 대한 한 쌍의 제약을 사용하여 나타낸다.

- 우선도가 높을수록 다른 제약보다 우선적으로 레이아웃에 적용.

 

 

<참조>

부스트코스 - iOS 앱 프로그래밍 www.boostcourse.org/mo326/lecture/16848/

애플 공식 문서 - Auto Layout Guide

반응형
Comments