我有一个导航视图。
在黑暗模式下,人字形(红色圆圈)几乎不可见。
struct ContentView: View {
var body: some View {
NavigationView{
List {
Line(text: "Line 1")
Line(text: "Line 2")
Line(text: "Line 3",selected: true)
Line(text: "Line 4")
Line(text: "Line 5")
}
}
}
}
struct Line: View {
var text :String
var selected = false
@Environment(\.colorScheme) var colorScheme
var body: some View {
NavigationLink(destination: Text("D")) { Text(text)}
.listRowBackground(selected ? Color.blue : Color(.systemBackground))
.foregroundColor(selected ? Color.white : Color(.label))
.onTapGesture(perform: {print ("tap")
} )
}
}
答案 0 :(得分:4)
标准人字形不是光栅图像的符号,而是
这就是为什么它不对任何变色修饰剂起反应的原因。
解决方案,禁用标准人字形并使用自己的自定义(列表的行为相同),如下所示
HStack {
Text(text)
NavigationLink(destination: Text("D")) { EmptyView() } // disabled !
Image(systemName: "chevron.right") // << custom !!
.foregroundColor(Color.red) // any color !!!
}
答案 1 :(得分:1)
在我的环境中,默认人字形显示在自定义人字形下。
添加不透明度(0),就可以了。
NavigationLink(destination: Text("D")) { EmptyView() }
.opacity(0) // Add this