Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩
UIKit/AutoLayout

7. SuperView, Safe Area

by Toughie 2023. 3. 26.

먼저 오토 레이아웃을 잡기 전에 고려해야 하는 것이 있는데.. 바로 홈버튼이 있는 아이폰과 홈버튼이 없는 아이폰의 차이이다.

(정확히는 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이상 떨어지기를 충족하기에

아래와 같이 원하는 결과를 얻을 수 있다.

 

 

[학습 소스]

공식문서, 야곰 오토레이아웃 정복하기 강의

https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/index.html

https://yagom.net/courses/autolayout/

'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