swiftUI divider 유의사항: 굵기가 다르게 나오는 경우들

작성일 :

SwiftUI에서 Divider 유의사항: 굵기가 다르게 나오는 경우들

SwiftUI는 애플의 최신 UI 프레임워크로, UI 구성 요소를 간단하고 효율적으로 관리할 수 있게 해줍니다. 이 중에서 Divider는 두 요소 간의 시각적 구분을 위한 요소로 자주 사용됩니다. 그러나 Divider의 굵기가 예상치 못하게 변동될 때가 있어 UI 설계 시 주의를 요합니다. 이 글에서는 Divider의 굵기 문제와 이를 해결하는 방법을 상세히 다루겠습니다.

Divider의 기본 사용법

먼저, Divider를 기본적으로 사용하는 방법을 살펴보겠습니다.

swift
struct ContentView: View {
    var body: some View {
        VStack {
            Text("첫번째 텍스트")
            Divider()
                .background(Color.black)
            Text("두번째 텍스트")
        }
    }
}

위 코드는 두 텍스트 사이에 Divider를 추가했습니다. 기본적으로 Divider는 픽셀 단위의 선을 그리며 화면상에서 두 요소를 시각적으로 구분해 줍니다.

Divider 굵기가 변하는 경우들

1. 기기별 차이

Divider의 굵기는 사용하는 기기의 해상도나 화면 비율에 따라 다르게 나타날 수 있습니다. 예를 들어, 레티나 디스플레이와 일반 디스플레이에서의 표현이 미세하게 다를 수 있습니다.

swift
struct ContentView: View {
    var body: some View {
        VStack(spacing: 0) {
            Text("첫번째 텍스트")
            Rectangle()
                .frame(height: 1)
                .foregroundColor(.black)
            Text("두번째 텍스트")
        }
    }
}

위 코드에서는 Rectangle을 사용하여 일정한 굵기를 가지는 선을 그릴 수 있습니다. 이 방법으로 기기별 차이를 줄일 수 있습니다.

2. Stack 안에서의 사용

VStack, HStack 내부에서 Divider를 사용할 때, 특히 스택 안의 요소가 동적으로 변화하는 경우 Divider의 굵기가 변할 수 있습니다.

swift
struct ContentView: View {
    var body: some View {
        VStack {
            ForEach(0..<5) { index in
                Text("텍스트 \(index)")
                if index < 4 {
                    Divider()
                }
            }
        }
    }
}

이런 경우 ForEach 요소 사이의 레이아웃 변동으로 인해 Divider의 굵기가 다르게 보일 수 있습니다. 이를 해결하기 위해 Spacer()로 고정된 간격을 줄 수 있습니다.

3. Custom Divider 생성

더 복잡한 레이아웃에서 사용할 때는 자체적으로 커스텀한 Divider를 생성할 수 있습니다.

swift
struct CustomDivider: View {
    var body: some View {
        Rectangle()
            .frame(height: 2)
            .foregroundColor(Color.gray)
    }
}

struct ContentView: View {
    var body: some View {
        VStack {
            Text("첫번째 텍스트")
            CustomDivider()
            Text("두번째 텍스트")
        }
    }
}

위 코드에서는 Rectangle을 사용하여 색상과 두께를 커스터마이즈한 CustomDivider를 생성했습니다. 이렇게 하면 각기 다른 상황에서도 일정한 굵기를 유지할 수 있습니다.

결론

SwiftUI에서 Divider를 사용하는 것은 간단해 보이지만, 다양한 상황에서 굵기가 예기치 않게 변할 수 있습니다. 이 문제를 해결하기 위해 기기별 차이를 줄이고, Stack 내부에서의 배치를 주의하며, 필요시 커스텀 Divider를 생성할 수 있습니다. 이러한 방법을 통해 안정적이고 일관된 UI를 제작할 수 있습니다.