728x90
StackView란
열 또는 행에 view들의 묶음을 배치할 수 있는 간소화된 인터페이스.
AutoLayout을 이용해 디바이스의 스크린 사이즈나 일어날 어떤 변화에 맞춰서 동적이 ui를 구성할 수 있다. 복잡한 ui를 구성하는 데 있어서 하나하나 AutoLayout 제약 조건을 사용하면 제약 조건이 많아져서 복잡하고 관리하기 어려워진다. 게다가 원하는 대로 ui 구성이 되지 않을 수 있다. StackView를 사용하면 AutoLayout 제약 조건을 많이 설정하지 않아도 쉽게 ui 구성 가능하다.
StackView는 arrangeSubviews들의 포지션과 사이즈를 맞추기 위해 AutoLayout을 사용한다.
이를 위해 StackView의 속성들을 세팅해줘야 한다.
StackView 속성창을 보면
- Axis: 스택의 축을 설정한다. → Vertical(수직), Horizontal(수평)
- Alignment: StackView가 어떤 식으로 하위 뷰들을 정렬할 것인지 설정한다.
- fill: StackView의 Axis와 수직인 방향으로 가능한 공간을 채우기위해 View들의 사이즈 재조정. Axis가 Horizontal인 경우, 아래위의 공간을 fill 하기 위해 늘리고, Vertical인 경우, 좌우 공간을 fill 하기 위해 늘린다.
fill (Horizontal) - leading: Vertical StackView에서 View들의 leading Edge와 StackView의 leading Edge에 맞춰 정렬.
leading - top: Horizontal StackView에서 View들의 Top Edge와 StackView의 Top Edge에 맞춰 정렬.
top - firstBaseline: View들의 first baseline에 맞춰 StackView가 View들을 정렬하는 것. 오직 Horizontal StackView 만.
firstBaseline - center: StackView가 축을 따라서 View들의 center를 StackView의 Center에 맞춰 정렬.
center - trailing: Vertical Stack의 Trailing Edge와 뷰들의 Trailing Edge를 맞춰 정렬. Horizontal Stack의 bottom 정렬과 동일
trailing - bottom: Horizontal Stack의 Bottom Edge와 뷰들의 Bottom Edge를 맞춰 정렬. Vertical Stack의 Trailing 정렬과 동일
bottom - lastBaseline: StackView가 View들의 last baseline에 맞춰 View들을 정렬. 오직 Horizontal StackView에서만.
lastBaseline
- fill: StackView의 Axis와 수직인 방향으로 가능한 공간을 채우기위해 View들의 사이즈 재조정. Axis가 Horizontal인 경우, 아래위의 공간을 fill 하기 위해 늘리고, Vertical인 경우, 좌우 공간을 fill 하기 위해 늘린다.
- Distribution: Axis를 따라 View들을 어떻게 분배할 것인지에 대한 속성. Axis를 따라 가능한 공간을 모두 채우기 위해 View들의 사이즈 재조정
- fill: view들이 StackView 크기를 초과한다면, 각 뷰의 compression resistance priority에 따라 각 뷰의 크기를 감소시킨다. view들이 StackView 크기에 미달이라면, 각 뷰의 hugging priority에 따라 각 뷰의 크기를 증가시킨다.
- fillEqually: 모두 같은 사이즈로 재조정
- fillProportionally: StackView를 채우고, 남은 공간이 생긴다면 intrinstic content size의 비율에 맞게 공간 분배 재조정
- equalSpacing: StackView 내부의 view들 사이의 공간을 균등하게 배치하는 옵션
- equalCentering: 각 view의 center-center 간 길이를 동일하게 맞춤
- fill: view들이 StackView 크기를 초과한다면, 각 뷰의 compression resistance priority에 따라 각 뷰의 크기를 감소시킨다. view들이 StackView 크기에 미달이라면, 각 뷰의 hugging priority에 따라 각 뷰의 크기를 증가시킨다.
- Spacing: StackView 안의 view들의 간격을 조정하는 속성
💡공부 및 기록용 블로그이므로 오류가 있을 수 있습니다.💡
만약 문제에 오류나 오타가 있다면 댓글로 알려주세요➿
언제나 환영합니다. 감사합니다. 화이팅!
728x90
'iOS' 카테고리의 다른 글
🌱 What is MVC Design Pattern? (Stanford iOS Lecture) (0) | 2022.05.15 |
---|---|
🌱 What's in iOS? (Standford iOS Lecture) (0) | 2022.05.15 |
[iOS] MapKit으로 지도 앱을 만들어보자! (1) (0) | 2022.03.04 |
[iOS] 🚨 Alert 창 (0) | 2022.01.24 |
[iOS] 📎 UITableView (0) | 2022.01.24 |