본문 바로가기
iOS - Swift 문법

iOS Swift 강좌 : Auto Layout

by chanfficial 2022. 1. 10.

UI 구성 방식의 변화

  1. Frame-based Layout : 개발자가 프레임을 직접 계산하고 설정해야 한다. 하나의 해상도가 존재하던 때에 주로 사용했지만 시간이 지나면서 프레임을 계산하는 작업이 복잡해졌기 때문에(특히 상위 뷰의 크기 변화에 따라 하위 뷰의 크기를 변경하는 작업이 어려워짐) Auto resizing mask가 도입되었다.
  2. Auto resizing mask : 상위 뷰의 프레임이 변경될 때 하위 뷰의 프레임이 변경되는 규칙을 미리 지정된 여섯 개의 비트 마스크로 지정하는 기술이다. 이전에 비해 프레임을 계산해야 하는 부담은 줄었지만 다른 문제는 해결하지 못했다.
  3. Auto Layout : UI를 구성하는 뷰의 크기와 위치를 다른 요소와의 관계를 나타내는 특별한 규칙을 통해 자동으로 계산하고 배치하는 기술이다. Auto Layout에 의해 이전의 방식들이 사라진 것은 아니기 때문에 Auto Layout으로 해결할 수 없는 문제에 대처하려면 프레임을 직접 계산하고 설정하는 공부가 필요하다. -> 위의 규칙을 제약(constraints)라 하고 Auto Layout에서 가장 중요한 규칙이다.
  4. Adaptive Layout : 애플은 Adaptive Layout을 통해 모든 디바이스와 해상도에 대응하는 하나의 UI를 개발할 수 있도록 Size Class와 Trait Collection을 도입했다.

Auto Layout 

  • Auto Layout은 UI 배치 규칙을 지정하면 레이아웃 시스템이 자동으로 위치와 크기를 계산해주는 기술이다.
  • Auto Layout은 위치와 크기를 직접 지정하는 방식에서 제약을 추가하는 방식으로 UI 구현 패러다임을 전환시켰다.
    • 제약을 추가 해 두면 Auto Layout 시스템이 디바이스 해상도를 비롯한 다양한 조건을 고려한 최종 위치와 크기를 자동으로 계산하여 배치해 주기 때문이다.

 

정리한 내용은 유튜브 KxCoding 채널의 영상을 참고했습니다.

https://www.youtube.com/watch?v=6AM0UoJ6_zk