[SwiftUI]ListのbackgroundColor(背景色)の変え方

SwiftUI

どうも、ちょげ(@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の設定を変える

皆さんの目的によって、使い分けて下さい。

コメント

タイトルとURLをコピーしました