[swift] 스택 뷰를 사용하여 격자 형태로 정렬하기

스택 뷰는 iOS 개발에서 사용되는 강력한 레이아웃 도구입니다. 이를 사용하면 여러 개의 뷰를 수직 또는 수평으로 정렬할 수 있습니다. 이번에는 스택 뷰를 사용하여 격자 형태로 뷰를 정렬하는 방법에 대해 알아보겠습니다.

1. 스택 뷰 생성

먼저, 스토리보드에서 스택 뷰를 추가합니다. Interface Builder에서 “Stack View”를 검색하여 원하는 위치에 드래그 앤 드롭으로 스택 뷰를 추가할 수 있습니다. 스택 뷰의 속성을 설정하기 전에 배치하고자 하는 뷰들을 추가합니다.

2. 스택 뷰 속성 설정

스택 뷰의 속성을 설정하여 격자 형태로 정렬할 수 있습니다. 스택 뷰를 선택하고 Attributes Inspector에서 다음 속성을 설정합니다:

3. 뷰 추가

스택 뷰에 격자 형태로 정렬할 뷰를 추가합니다. 스택 뷰에 추가할 뷰들을 선택하고 Control 키를 누른 채로 드래그 앤 드롭으로 스택 뷰 안으로 넣어줍니다.

4. 레이아웃 적용

스택 뷰의 속성을 설정하고 뷰를 추가한 후에는 Auto Layout을 적용하여 적절한 레이아웃을 설정해야 합니다. 선택한 레이아웃 방식에 따라 각 뷰의 제약 조건을 설정하고 스택 뷰와 상위 뷰의 제약 조건을 설정합니다. 이렇게 하면 스택 뷰와 그 안에 있는 뷰들이 화면에 적절하게 나타날 수 있습니다.

5. 실행

스택 뷰를 정렬하는 레이아웃을 설정한 후에는 앱을 실행하여 격자 형태로 뷰가 정렬되는지 확인할 수 있습니다. 전체 화면 또는 부분 화면에 스택 뷰가 격자 형태로 정렬되어 있는지 확인합니다.

import UIKit

class ViewController: UIViewController {
    // 뷰들을 추가할 스택 뷰 생성
    let stackView = UIStackView()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 스택 뷰의 속성 설정
        stackView.axis = .vertical
        stackView.distribution = .fillEqually
        stackView.spacing = 10
        
        // 스택 뷰에 뷰들 추가
        let view1 = UIView()
        let view2 = UIView()
        let view3 = UIView()
        
        stackView.addArrangedSubview(view1)
        stackView.addArrangedSubview(view2)
        stackView.addArrangedSubview(view3)
        
        // 스택 뷰를 화면에 추가
        view.addSubview(stackView)
        
        // 스택 뷰의 제약 조건 설정
        stackView.translatesAutoresizingMaskIntoConstraints = false
        stackView.topAnchor.constraint(equalTo: view.topAnchor, constant: 20).isActive = true
        stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20).isActive = true
        stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20).isActive = true
        stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -20).isActive = true
    }
}

위의 예제 코드는 UIViewController에서 스택 뷰를 생성하고 속성을 설정한 후, 뷰들을 추가하고 레이아웃을 설정하는 방법을 보여줍니다.

참고 자료