오토레이아웃을 코드로 작성하는 방법
- Layout Anchor를 사용하는 방법
- NSLayoutConstraint class를 직접 이용하는 방법
- Visual Format Language를 사용하는 방법
- 외부 라이브러리 활용 (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 |