인디노트

SwiftUI 에서 List 의 배경색 변경 본문

소스 팁/Objective C, Swift, iOS, macOS

SwiftUI 에서 List 의 배경색 변경

인디개발자 2022. 10. 27. 14:41

SwiftUI 를 사용해서 List 를 구현하는 경우가 많다.

이때 List 의 배경색을 변경하고 싶은데 이게 iOS 버전에 따라서 방법이 달라진다.

예를 들어 View 를 상속받은 struct 에서 다음과 같은 방법들이 있다.

init() {
    UITableView.appearance().backgroundColor = .red		// for iOS 15
    UICollectionView.appearance().backgroundColor = .red	// ???
}
var body: some View {
    NavigationView {
        List(landmarks) { landmark in
            NavigationLink {
                LandmarkDetail(landmark: landmark)
            } label: {
                LandmarkRow(landmark: landmark)
            }
        }
        .background(.pink)			// from iOS 15.0
        .scrollContentBackground(.hidden)	// from iOS 16.0
    }
}

대략 위의 내용과 같다. 위의 코드에서 for iOS 15 는 iOS 16 에서는 적용되지 않는 경우이다. iOS 15 까지는 List 가 UITableView 로 처리되지만  iOS 16 부터 List 는 UICollectionView 로 처리된다.

위의 코드에서 나같이 iOS 13.0 부터 지원하는 앱을 만든다면 다음과 같은 전처리 라인을 이용하여 코드를 알맞게 구성하도록 한다.

if #available(iOS 15.0, *) {

반응형
Comments