StackView

이하연·2021년 9월 16일
0

Boostcourse

목록 보기
16/20

StackView

UIStackView

StackView는 여러 View들의 수평 또는 수직 방향의 선형적인 레이아웃의 인터페이스를 사용할 수 있게 해줍니다.

StackView와 오토레이아웃 기능을 활용하여 디바이스의 방향, 화면크기에 따라 동적으로 적응할 수 있는 사용자 인터페이스를 만들 수 있습니다.

StackView의 레이아웃은 StackView의 'axis', 'distribution', 'alignment', 'spacing' 등과 같은 프로퍼티를 통해 조정합니다.

수평 asix 스택뷰 모식도

StackView는 arrangedSubviews 프로퍼티에 StackView에 포함된 뷰들을 관리함

이 프로퍼티는 순서가 있는 배열과도 같습니다.

스택뷰에 포함된 뷰의 순서가 레이아웃에 영향을 미칩니다.

스택뷰 생성

스택뷰에 뷰 추가하는 것은 코드상으로 func addArrangedSubview(UIView) 메서드 호출과 같음

첫번째 방식

스택뷰를 먼저 생성하고 그 안에 새로운 뷰를 추가하기

두번째 방식

이미 존재하는 뷰들을 스택뷰에 추가하는 방법


이 상태에서 Embed in > Stack View 선택하기


UIStackView 클래스의 주요 프로퍼티

  • var arrangedSubviews: [UIView]: 스택뷰의 정렬된 뷰의 배열입니다. 스택뷰에 포함된 뷰들을 이 프로퍼티에 저장하고 관리합니다.
  • var axis: UILayoutConstraintAxis: 레이아웃의 방향을 결정합니다.(수직 vertical, 수평 horizontal)
  • var distribution: UIStackViewDistribution: 스택뷰에 포함된 뷰가 스택뷰 내에서 어떻게 배치(분배)될지 결정합니다.
  • var spacing: CGFloat: 스택뷰에 정렬된 뷰들 사이의 간격을 결정합니다. 기본 값은 0.0 입니다.

UIStackView 클래스의 주요 메서드

  • func addArrangeSubview(UIView)arrangedSubviews 배열에 마지막 요소에 뷰를 추가합니다.
  • func insertArrangedSubview(UIView, at: Int)arrangedSubviews 배열의 특정 인덱스에 뷰를 추가합니다.
  • func removeArrangedSubview(UIView): 스택뷰의 arrangedSubviews 배열로부터 뷰를 제거합니다.

0개의 댓글