Xcode 14
までは、以下のようなコードで List
に背景色を付けていたと思います。
import SwiftUI
struct ContentView: View {
init() {
UITableView.appearance().backgroundColor = .clear
}
var body: some View {
List {
Text("コンテンツ1")
Text("コンテンツ2")
Text("コンテンツ3")
}
.background(.red)
}
}
Xcode 14
からは、上記のコードでは背景色が変わらず、以下のようなコードを書く必要があります(.scrollContentBackground(.hidden)
を利用)。
import SwiftUI
struct ContentView: View {
- init() {
- UITableView.appearance().backgroundColor = .clear
- }
-
var body: some View {
List {
Text("コンテンツ1")
Text("コンテンツ2")
Text("コンテンツ3")
}
.background(.red)
+ .scrollContentBackground(.hidden)
}
}
これは、List
の裏で UITableView
が利用されているか、UICollectionView
が利用されているかの違いのようです。
興味本位で、以下のコードを試してみましたが、背景色は変わりませんでした。
import SwiftUI
struct ContentView: View {
init() {
- UITableView.appearance().backgroundColor = .clear
+ UICollectionView.appearance().backgroundColor = .clear
}
var body: some View {
List {
Text("コンテンツ1")
Text("コンテンツ2")
Text("コンテンツ3")
}
.background(.red)
}
}
今回は、開発中のアプリで Xcode 14
に移行後、List
の背景色がおかしくなったので、備忘録的に書きました。では、また次の記事で!