如何更改 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
,因此选择在这些模式中具有不同的颜色。
如何在 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
,因此选择在这些模式中具有不同的颜色。