본문 바로가기
면접

iOS 기술면접 정리 - 3. Autolayout

by be_beee 2022. 7. 10.

오토레이아웃을 코드로 작성하는 방법

  1. Layout Anchor를 사용하는 방법
  2. NSLayoutConstraint class를 직접 이용하는 방법
  3. Visual Format Language를 사용하는 방법
  4. 외부 라이브러리 활용 (SnapKit, Then)

1, 4번 빼고는 내가 설명할 자신이 없음..ㅋㅋ

 

 

hugging, resistance

  • Content Hugging Priority: 두 오브젝트 A, B가 나란히 있을 때 더 늘어나는 것에 대해 저항하는 정도. 우선순위가 높으면 기존의 형태를 유지하고 영역이 더 늘어나지 않는다
  • Compression Resistance Priority: 두 오브젝트 A, B가 나란히 있을 때 A가 비대하게 커질 경우 B가 밀려나지 않도록 저항하는 정도. B의 우선순위가 높을수록 저항력이 생겨 밀려나지 않고 A는 지정해둔 최댓값 이상으로 늘어나지 않는다.
 

 

Intrinsic Size

본질적인 컨텐츠 크기

UILabel이나 UIButton을 오토레이아웃으로 구현할 때 제약사항으로 width와 height를 추가하지 않아도 오류가 나지 않는 이유는 intrinsicContentSize를 갖고 있기 때문 

UILabel의 내용이 변경되거나 하면 자동으로 계산됨

 

invalidateIntrinsicContentSize(): view의 컨텐츠 크기가 바뀌었을 때 intrinsicContentSize 프로퍼티를 통해 size를 갱신하고 그에 맞게 auto layout이 업데이트 되도록 만들어줌

 

 

스토리보드를 이용했을 때의 장단점

장점

  • UI 구성을 한눈에 확인할 수 있다 (직관적)
  • View에 어떤 속성과 값을 설정했는지 확인하기 쉽다

단점

  • StoryBoard 구현을 위해 Xcode 메모리가 올라간다. (이 부분은 기능별로 StoryBoard를 분리하면 해결 가능)
  • 협업시 StoryBoard 충돌 혹은 이슈가 발생할 수 있다
  • 인터페이스빌드와 StoryBoard 간 연결을 추적하기 어려울 수 있다

 

SafeArea

iOS 11과 노치가 등장하면서 나타난 개념

이전에는 Top/Bottom Layout Guide만으로 커버가 됐지만 노치가 등장하면서 LandScape 상태일 때 Leading/Trailing에 대한 마진이 필요해짐

따라서 기존에 쓰이던 Top/Bottom layout Guide가 Deprecate 되고 Top, Bottom, Leading, Trailing 시스템 마진을 모두 가지는 Safe Area가 등장

동영상/사진 같이 화면을 꽉 채워야하는 특별한 경우가 아닌 이상 Safe Area 사용을 권장함

 

 

* Layout Guide: Status bar, Navigation bar, Tabbar 등에 의해서 View가 가려지지 않기 위해서 제공되는 시스템적 마진

 

 

Left Constraints VS Leading Constraints

Left: 말그대로 왼쪽

Leading: 텍스트의 시작점. 애플리케이션의 지역화를 위해서는 Leading, Trailing을 사용해야 함

 

'면접' 카테고리의 다른 글

iOS 기술면접 정리 - 5. Swift (2)  (0) 2023.02.08
iOS 기술면접 정리 - 5. Swift (1)  (0) 2022.07.10
iOS 기술면접 정리 - 2. GCD  (0) 2022.07.10
iOS 기술면접 정리 - 1. Common  (0) 2022.07.03