먼저 오토 레이아웃을 잡기 전에 고려해야 하는 것이 있는데.. 바로 홈버튼이 있는 아이폰과 홈버튼이 없는 아이폰의 차이이다.
(정확히는 Safe Area를 살펴봐야 한다.)
Safe Area는 유저에게 항상 보이고, 인터렉트 할 수 있는 안전한 영역을 말한다.
위 사진을 보면 홈버튼이 없는 모델(최신)의 Safe Area는 View에 비해 작고 홈버튼이 있는 모델은 View와 Safe Area 사이즈가 같다.
이로 인해 아래와 같은 상황이 발생할 수 있다.
버튼이 화면 아래에 자리잡도록.. 홈버튼이 있는 모델을 기준으로 리딩,바텀,트레일링 각 20만큼 띄워줬다.
근데 이걸 홈버튼이 없는 모델로 보면 버튼이 의도와 다르게 완전 위로 올라가버렸다. (홈버튼 없는 모델의 Safe Area가 더 위에 있기 때문)
이 경우 제약 Priority를 통해 해결할 수 있다.
아래(SuperView)에서 20이상 떨어지는 것을 최우선 제약으로, 그 다음 제약은 SafeArea Bottom과 딱 붙게 하는 것이다.
그러면 홈버튼이 없는 모델에서는 최우선 제약을 따라 SuperView.bottom에서 20만큼 떨어질 것이고 (둘 다 만족은 불가능)
홈버튼이 있는 모델에서는 Safe Area Bottom과 딱 붙어도 최우선 제약인 SuperView에서 20이상 떨어지기를 충족하기에
아래와 같이 원하는 결과를 얻을 수 있다.
[학습 소스]
공식문서, 야곰 오토레이아웃 정복하기 강의
'UIKit > AutoLayout' 카테고리의 다른 글
9. Dynamic Stack View_ Code (0) | 2023.03.27 |
---|---|
8. 코드로 오토레이아웃 잡기 (0) | 2023.03.26 |
6. Debugging Auto Layout (0) | 2023.03.26 |
5. 스택뷰 연습 (0) | 2023.03.25 |
4. Stack Views_ 스택뷰 (0) | 2023.03.25 |