1. ホーム
  2. swift

[解決済み] SwiftUIでリストの背景色を変更するには?

2023-03-21 19:23:02

質問

UIKitで作ったUIをSwiftUIで再現しようとしているのですが、いくつかの小さな問題にぶつかっています。

の色を変更したいです。 List の色を変更したいのですが、どのプロパティも期待通りに動作しないようです。以下はサンプルコードです。

struct ListView: View {
    @EnvironmentObject var listData: ListData

       var body: some View {
        NavigationView {
            List(listData.items) { item in
                ListItemCell(item: item)
            }
            .content.background(Color.yellow) // not sure what content is defined as here
            .background(Image("paper-3")) // this is the entire screen 
        }
    }
}

struct ListItemCell: View {
    let item: ListItem

    var body: some View {

        NavigationButton(destination: Text(item.name)) {
            Text("\(item.name) ........................................................................................................................................................................................................")
                .background(Color.red) // not the area I'm looking for
        }.background(Color.blue) // also not the area I'm looking for
    }
}

どのように解決するのですか?

OK、私はリストの行を着色するための解決策を見つけました。

struct TestRow: View {

    var body: some View {
        Text("This is a row!")
        .listRowBackground(Color.green)
    }
}

で、bodyに

List {
    TestRow()
    TestRow()
    TestRow()
}

これは期待通りに動作しますが、行の間の区切り線を削除する方法がまだ見つかっていません...。