티스토리 뷰

[iOS 오토레이아웃 ] 오토레이아웃 이해하기

from Auto layout Guide - Getting Started - Understanding Auto Layout

오토레이아웃은 다양한 변화에 유연하게 대응하기 위해 만들어졌습니다. 변화는 크게 외부 변화와 내부 변화로 나뉩니다.

외부 변화

OS X
 - 에서 창 크기롤 저잘할 때

iOS
 - 아이패드에서 Split뷰를 사용할 때와 안 할 때
 - 장치를 회전할 때
 - 통화할 때나 녹음할 때 상단에 bar가 나타나거나 사라질 ㄹ때
 - size class를 대응할 때
 - screen size가 달라질 때

이러한 변화는 실행시간에 일어납니다. (앱을 사용할 때) 실행시간에 스크린 사이즈가 변화지 않더라고 오토레이아웃을 적용하는 게 좋습니다.  iPhone 4s부터 X까지 다 지원해야 하니까요. 그리고 오토레이아웃은 iPad에서 slide over와 split views를 지원하는 핵심요소입니다.


내부 변화

뷰나 컨트롤뷰의 사이즈가 바뀔 때 일어납니다. 
 - 뷰의 컨테트가 변하거나
 - 국제화로 인해서 글자 길이나 크기가 달라지거나
 - iOS에서 Dynamic Type으로 인해 글자 크기가 달라지거나 

하는 등 많은 요인이 있습니다.
특히 국제화에 대해서 많은 설명이 있네요.

국제화는 언어를 바꾸기 때문에  글자 크기나 길이 뿐만 지역간에 날짜포맷과 숫자도 바꿉니다. 언어가 바뀌지 않더라도 말이죠. 그리고 언어방향도 바껴서 까다로운 상황도 만듭니다. 보통 언어는 왼쪽에서 오른쪽방향이지만 아랍어나 히브리어는 오른쪽에서 왼쪽으로 됩니다. 만약 버튼이 아래오른쪽 구석에 있다면 아래왼쪽으로 바껴야 합니다.

Auto Layout VS Frame-Based Layout

UI를 만드는 방법은 auto resizing masks (외부 변화에만 반응,,,) IB와 코드로 Auto flayout  그리고 예전 방식은 Frame-Based Layout

Frame-Based Layout은 뷰의 x,y,width,height를 코드로 줘야했다. 이걸 하기위해 다 일일히 계산해야 했다고 한다. 뷰에 변화가 생기면 다시 또 계산하고... 어떻게 하지... 

이런 불편을 개선 한  게 auto resizing masks 외부 변화에'만' 대응하는

그래서 내부 외부등 다양한 환경에 대응하게 되는 Auto layout을 만들었다고 한다. 이것은 frame보다는 관계에 집중하면 된다고 한다. x,y,width,height는 알아서 개산해주는 Auto layout 근데 어렵다 
그래서 guide를 만들었다. 뒤에 나올  많은 예제들로 공부하세요... auto layout cookbook 예제만 20개 넘는 듯... 


반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함