[ swift - UIStackView ]

Yr Yr·2023년 12월 26일

TIL

목록 보기
23/39

UIStackView

열이나 행으로 뷰들의 컬렉션을 배치하는 사용하기 쉽고 효율적인 인터페이스이다. 행으로 뷰를 배열하면 가로방향으로 배치되고 열로 뷰를 배열하면 세로방향으로 배치된다.
특히 오토레이아웃과 함께 사용할 때 매우 유용하다.

  • stackView는 arrangedSubviews 프로퍼티에 있는 모든 뷰의 레이아웃을 관리한다.
    arrangedSubviews 안에 있는 뷰들은 stack view에 설정된 축에 따라 배열 내의 순서대로 stackView에 배치된다.
    • arrangedSubviews는 stack view에 배열된 뷰들의 리스트
    var arrangedSubviews: [UIView] { get }
  • 기본 속성(axis, distribution, alignment, spacing)
    1) axis

    • horizontal은 기본값이고 가로방향으로 배치된다.
    • vertical은 세로방향으로 배치된다.

    2) distribution(axis 방향)

    • Fill(default): 현재 기준 방향으로 요소들을 배치한다. 뷰들의 최소,최대 크기에 대한 우선순위에 따라 크기를 줄이거나 확장시킨다.
      ▸ compression resistance priority: 최소 크기에 대한 우선순위
      ▸ hugging priority: 최대 크기에 대한 우선순위
    • Fill Equally: 각 내부 요소들이 동일한 크기를 가진다.
    • Fill Proportionally: 스택뷰를 채우기 위해 Intrinsic content size를 기준으로 내부 요소들의 크기를 정한다.
    • Intrinsic content size: 뷰가 가지는 컨텐츠를 기준으로 계산되는 크기
    • Equal Spacing: 스택뷰 내부가 가득 차지 못하면 뷰들의 크기를 조절하지 않고 내부 뷰들 사이의 간격을 일정하게 증가시키거나 감소시켜 스택뷰를 가득 채우는 속성
    • Equal Centering: 뷰 간 간격 특성의 거리를 유지하면서 뷰들의 중간 지점 사이의 거리가 같아지도록 spacing을 조절하는 속성

    3) alignment(axis 반대 방향)

    • Fill(default): 내부 뷰들을 axis의 반대방향으로 채운다.
    • vertical(center, trailing, leading): 세로방향으로 중앙 배치는 center, 오른쪽 배치는 trailing, 왼쪽 배치는 leading
    • horizontal(center, bottom, top): 가로방향으로 중앙 배치는 center, 아래 배치는 bottom, 위 배치는 top

    4) spacing: 뷰 내부 사이의 간격.

0개의 댓글