[IOS, Swift] UIStackView

 

UIStackView 

 

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

 

오토 레이아웃을 이용하여 디바이스의 스크린 사이즈나 어떠한 변화에 맞춰서 동적인 UI 구성에 도움을 준다.

하지만 복잡한 UI를 구성할 때 일일이 오토 레이아웃 조건을 설정하면 제약조건이 많아져서 복잡하고 유지보수가 어려워진다.

뿐만 아니라 원하는 UI구성이 어려워질 수도 있다.

 

UIStackView를 사용하면 쉽게 UI 구성이 가능하다.

 

[ 각 뷰에 오토 레이아웃을 구성한 뷰 ]

 

[ 스택 뷰를 사용한 경우 ]

제약 조건 없이 슬라이드와 같이 간단하게 UI 구성이 가능하다.

 

[ 스택 뷰의 다양한 속성 ]

 

스토리보드에서 스택 뷰를 선택하고 속성 탭에서 다양한 스택 뷰의 속성을 설정 가능하다.

1. Axis

 

StackView의 방향을 결정한다.

2. Alignment

 

StackView 의 서브 뷰들을 어떤식으로 정렬할지 결정하는 속성 

Fill : 스택 뷰의 방향이 Horizontal인 경우 위 아래 공간을 가득 채움 , Vertical인 경우 좌 우 공간을 가득 채움 

Leading : 서브 뷰들이 스택 뷰의 리딩에 맞추어 정렬 , 서브 뷰들이 스택 뷰의 왼쪽에 정렬 

Top : 서브 뷰들이 스택 뷰의 위로 정렬 

First Baseline :  First Baseline에 맞추어 스택 뷰가 서브 뷰를 정렬 , 오직 Horizontal 옵션에서만 사용 가능 

Center : 스택 뷰 방향에 따라서 가운대로 정렬 

Trailing : 스택 뷰의 왼쪽에 맞춰서 서브 뷰들을 정렬 

Bottom : 스택 뷰의 아래에 맞춰서 서브 뷰들을 정렬 

Last Baseline : 스택 뷰가 Last Baseline에 맞춰서 서브 뷰들을 정렬 , 오직 Horizontal 옵션에서만 사용 가능 

 

3. Distribution

 

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

 

Fil : 스택 뷰 안에 들어있는 서브 뷰들의 사이즈를 재조정

사이즈를 초과한다면 사이즈 재조정,

사이즈를 미달한다면 꽉채우게 각 뷰를 늘림  

줄어들 때는 우선순위가 낮은 뷰부터 크기를 감소시키고, 

늘어날 때는 우선순위가 낮은 뷰부터 크기를 증가시킨다.

Fill
Fill Equally

Fill Proportionally :   스택 뷰가 가지고 있던 크기에 비례햐여 서브 뷰의 사이즈 조정

 

Fill Proportionally

Equal Spacing : 스택 뷰의 방향에 따라서 서브 뷰 사이의 간격을 동등하게 배치 

 

Equal Spacing

Equal Centering : 스택 뷰의 방향에 따라서 각 서브 뷰의 센터와 센터 간의 길이를 동일하게 만듦

Equal Centering

4. Spacing

 

스택 뷰 안에 들어가는 서브 뷰들의 간격을 조정하는 속성