[swift] Swift에서의 Adaptive Layout 사용하기

이 문서에서는 Swift에서 Adaptive Layout을 사용하여 다양한 기기와 화면 크기에 대응하는 방법에 대해 알아보겠습니다.

Contents

Adaptive Layout이란?

Adaptive Layout은 여러 디바이스와 화면 크기에 맞춰 앱의 사용자 인터페이스를 자동으로 조정하는 기능을 뜻합니다. 이를 통해 사용자 경험이 향상되고, 다양한 디바이스에서 일관된 UI를 제공할 수 있습니다.

Size Classes

Size Classes는 화면의 너비와 높이, 혹은 가로 세로 비율에 따라 화면 크기를 분류하는 기능입니다. Compact와 Regular 두 가지로 분류되며, 각 디바이스가 가지는 크기에 따라 이러한 Size Classes를 적용할 수 있습니다.

예를 들어, iPhone의 세로 방향은 Compact width, Regular height이 되며, iPad의 가로 방향은 Regular width, Regular height가 됩니다. 이러한 Size Classes를 통해 각 디바이스에 알맞은 레이아웃을 적용할 수 있습니다.

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)

    if traitCollection.horizontalSizeClass == .compact {
        // Compact width 레이아웃 처리
    } else if traitCollection.horizontalSizeClass == .regular {
        // Regular width 레이아웃 처리
    }
}

Adaptive Constraints

Adaptive Constraints를 사용하여 각 Size Classes에 따라 다른 레이아웃을 적용할 수 있습니다. Interface Builder에서 다양한 Size Classes를 선택하고, 각 Size Classes에 따라 레이아웃을 조정할 수 있습니다.

if traitCollection.horizontalSizeClass == .compact {
    // Compact width 레이아웃을 위한 제약 추가
} else if traitCollection.horizontalSizeClass == .regular {
    // Regular width 레이아웃을 위한 제약 추가
}

Adaptive UI

Adaptive Layout을 사용하여 서로 다른 디바이스에서 동일한 UI를 제공하는 방법을 익힐 수 있습니다. Adaptive Layout은 Auto Layout과 결합하여, 앱의 UI가 다양한 디바이스에서 자연스럽게 동작하도록 할 수 있습니다.

참고 자료

adaptivelayout-swift-ko.md