どうも、ちょげ(@chogetarou)です。
この記事では、Listの背景色の変え方を解説します。
セルごとに変える方法
セル(1行)ごとに変えたい場合は、.listRowBackgroundモディファイアを使い、色を指定します。
.listRowBackgroundモディファイアは、listビューではなくセルにつけます。
以下は、セルの背景色を変えた例です。
ForEach(1...5, id: \.self) { i in
Text("\(i)")
.listRowBackground(Color.blue)
}
セルとなるTextビューで色を指定しています。
結果は以下のようになります。

Listビューの背景
Listビュー自体の背景を変えたい際は、UITableViewというSwiftUIの設定を変更します。
具体的には、 UITableView.appearance().backgroundColorという背景色の設定をビューが呼び出される段階で変更します。
以下は、Listの背景色を変えた例です。
init() {
UITableView.appearance().backgroundColor = .blue
}
var body: some View {
List {
ForEach(1...5, id: \.self) { i in
Text("\(i)")
}
}
}
View構造体が呼び出される段階(init)で、背景色をblueに変更しています。
以下は、表示した画面です。

セルではなく、リスト自体の背景色が変わっています。

まとめ
- セル(1行)の背景色を変えたい
→ listRowBackgroundモディファイアで指定する - List自体の背景を変えたい
→ ビューが呼び出される段階で、UITableView.appearance().backgroundColorの設定を変える
皆さんの目的によって、使い分けて下さい。
コメント