본문 바로가기
iOS - 실무관련/Auto Layout

10. StackView

by print_soo 2022. 3. 27.

StackView의 장점은 여러개의 컴포넌트를 정렬해야할 때 복잡한 Constraints를 단순화 시켜서 간단하게 만들 수 있다.

StackView를 화면에 놓고 다른 컴포넌트들을 StackView위에 놓으면 StackView안에 컴포넌트들이 들어가게 된다.

하지만 위의 방식처럼 StackView에 컴포넌트를 추가하는 경우 View자체를 2개이상 추가했을 때 상위View에 View가 들어가서 중첩 View가 될 수 있다.

다음 방법으로 진행하면 오류가 나지 않게 만들 수 있다.

[오류 없는 StackView]

1. StackView에 넣을 컴포넌트들을 우선적으로 화면에 배치해준다.

폰트와 글자 길이가 다른 Label 3개를 추가해주었다.

 

2. 추가한 컴포넌트를 모두 클릭하고 우측하단에 있는 Embed in에서 StackView를 선택해준다.

이렇게하면 StackView에 컴포넌트를 오류 없이 넣을 수 있다.

 

[StackView 속성]

이제 StackView 속성에 대해서 알아보자.

그전에 StackView의 Constraints를 각각 10씩걸어주자. (bottom 제외) + 각 Label의 배경색도 지정

  • Axis - 수직, 수평을 정하는 옵션
  • Alignment - StackView안에 view들의 Y축을 정렬하는 옵션
  • Distribution - StackView안에 view들의 X축을 정렬하는 옵션
    • Fill: 각 컴포넌트의 Priority에 맞춰서 StackView를 채운다. Priority가 모두 같다면 인덱스 순으로 크기를 조절한다.
    • Fill Equally: 컴포넌트를 같은 크기로 만들어서StackView를 채운다.
    • Fill Proportionally: 컨텐츠 고유의 크기에 따라서 컴포넌트 크기가 확장되어 주어진 Spacing과 함께 Stackview를 채운다.
    • Equal Spacing: Spacing을 통해서 컴포넌트끼리의 간격을 일정하게 증감시켜 StackView를 채운다.
    • Equal Centering: 어느 컴포넌트의 중심점에서 옆쪽 컴포넌트의 중심점까지의 거리가 같도록 Spacing을 결정해서 StackView를 채운다.
  • Spacing - subview들 간의 간격을 설정하는 옵션

실습에 관한 내용은 다음에

'iOS - 실무관련 > Auto Layout' 카테고리의 다른 글

12. 코드로 컴포넌트 추가하기  (0) 2022.03.27
11. Botton  (0) 2022.03.27
9. Margin  (0) 2022.03.27
8. ScrollView  (0) 2022.03.27
7. Size Class  (0) 2022.03.27