강신규

[Swift] Auto Layout 이란 본문

iOS/Swift

[Swift] Auto Layout 이란

kangnew 2023. 5. 17. 10:09

 

(출처: Apple Developer)

AutoLayout 의 정의

오토 레이아웃(Auto Layout)은 제약 조건(Constraints)을 이용해서 뷰의 위치를 지정하는 것입니다. 다시 말하면, 두 뷰 사이의 관계를 제약 조건이라는 것을 이용해서 뷰의 크기와 위치를 지정하는 것입니다.

 

AutoLayout 이 필요한 이유는 무엇일까

아이폰의 기기 종류는 매우 다양하고 회전하는 경우 좌표들이 모두 다 달라진다. 모든 기기마다 width 와 height 는 다르기때문에 한 아이폰 기기에서는 알맞게 화면이 나오지만 다른화면에서는 이상한 위치에 배치가 되기 때문에 절대적인 위치보다 상대적인 위치에 배치가 되면 이 문제를 해결할수있다.

같은 좌표인 (5,5)는 아이폰 기기마다 다른 위치에 분포를 하게 된다 따라서 "옆에 누군가 있다면 그 옆에 5만큼 떨어지게 해줘" 의 역할을 대신해 주는것이 오토레이아웃이다.

 

 

AutoLayout 을 사용하기 위해 필요한것

iOS의 UI는 뷰(View) 안에 여러 하위 뷰(Subview)가 들어간 트리 구조로 되어있습니다.

iOS가 알맞게 UI의 레이아웃을 잡으려면, 개발자가 모든 뷰의 '위치'와 '크기'를 지정해줘야 합니다.

 

1. View 의 X 축 위치

2. View 의 Y 축 위치

3. View 의 X 축 크기

4. View 의 Y 축 크기

 

모든 View 의 4가지 값을 구할 수 있도록 개발자는 View 와 View 사이 상대적인 관계를 표현한 조건을 만들어서 전달해야합니다.

 

(출처: Apple Developer)

 

Constraint 는 하나의 View 와 다른 View 속성 간 관계를 지정해야합니다.

 

Top , Bottom , Left , Right , Center X , Center Y 의 조건을 걸어 이 좌표가 어디로 갈수있을지 상대적인 위치가 정해진다면 목적에 도달할 수 있습니다.

 

ex ) (Left 와 Center Y).  or (Left 와 Width) or ( Left 와 Right ) 

 

 

 

 

 

 

 

 

 

 

'iOS > Swift' 카테고리의 다른 글

[iOS][Swift] App LifeCycle - 앱 생명주기  (0) 2024.05.24
[Swift] Extensions (확장) 이란  (1) 2024.04.12
[Swift] unrecognized selector sent to instance  (0) 2023.06.02
[Swift] Optional 정리  (0) 2023.01.31
[Swift] Cording_Test 준비  (0) 2023.01.30