如何更改 SwiftUI 中选定列表项的文本颜色?

How can I change the text color of selected list items in SwiftUI?

如何在 SwiftUI 中更改选定列表项的文本颜色?我能否动态执行此操作,以便 if 始终与所选行的背景色形成对比色?

var itemList: some View {
    List{
        ForEach(items, id: \.self, selection: $selectedItem) { item in
             NavigationLink(
                 destination: ItemDetail(item: item)
             ) {
                 ItemRow(item: item)
             }
        }
    }
}

可能会有变体,但通常你必须以某种方式将选择传递到带有行文本的视图中,并有条件地应用前景色,比如

     NavigationLink(
         destination: ItemDetail(item: item)
     ) {
         ItemRow(item: item, selected: item == selectedItem)
     }

并在 ItemRow

    Text(item.title)
        .foregroundColor(selected ? .blue : .labelColor)

注意:您可以设置在具有 light/dark 模式变体的颜色资产中创建的自定义颜色,而不是 .blue,因此选择在这些模式中具有不同的颜色。