 iOS/UIKit

UIStackView

Younngjun 2022. 7. 11. 21:07
UIStackView 란?

열 또는 행에 View 들의 묶음을 배치할 수 있는 간소화된 인터페이스.

 

AutoLayout 을 이용하여 디바이스의 스크린 사이즈나, 혹은 일어날 어떠한 변화에 맞추어 동적인 UI 를 구성할 수 있다.

복잡한 UI 를 구성하는데에 있어서, 일일이 Auto Layout 제약조건을 설정하면 제약 조건이 많아져 복잡하고, 관리하기 어려울 뿐만 아니라 종종 원하는 대로 UI 구성이 안될 때도 있다.

 

StackView 를 사용하면 AutoLayout 제약 조건을 설정하지 않아도 간단하게 UI 구성이 가능하다.

 

UIStackView 속성

Stack View 에는 다양한 속성이 있다.

 

1. Axis

Stack View 의 방향을 결정한다. 

→ 가로 : horizontal

→ 세로 : vertical

 

2. Distribution

StackView 안에 들어가는 View 들의 사이즈를 어떻게 분배할지 설정하는 속성

Fill : Stack View 의 방향에 따라 가능한 공간에 모두 채우기 위해 SubView 들의 사이즈를 재조정한다.

만약 SubView 크기가 StackView 의 크기 를 초과한다면, 각 SubView 의 Compression Resister Priority 에 따라 View 의 크기를 감소시킨다. 

SubView 들이 StackView 의 크기에 미달한다면, 각 SubView 의 Hugging Priority 에 따라 각 View 를 늘려 StackView 를 채운다.

 

Fill Equally

Fill Proportionally

SubView 가 갖고있던 크기에 비례하여 공간을 차지하게 한다.

 

 Equal Spacing

SubView 들 사이의 공간을 균등하게 배분한다.

 

 Equal Centering

SubView 들의 center 와 center 간의 길이를 동일하게 맞춘다.

각자 View 들의 중앙의 점선 사이의 간격 거리가 똑같아지게 설정이 된다.

 

3. Alignment

StackView 의 subView 들을 어떤식으로 정렬할지 결정하는 속성.

 

→ Fill

 Leading

→ Top

→ First Baseline

horizontal 인 경우에만 사용 가능.

 

→ Center

→ Trailing

→ Bottom

→ Last Baseline

horizontal 인 경우에만 사용 가능.

 

4. Spacing

StackView 안에 들어가는 뷰들의 간격을 조정하는 속성.