6

我有这个列表,我是一个 NavigationView。
在黑暗模式下,雪佛龙(红色圆圈)几乎看不见。

在此处输入图像描述 如何在列表中设置雪佛龙的颜色。

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")
    } )
  }
}
4

3 回答 3

8

标准人字形不是光栅图像的符号,这里是

演示1

这就是为什么它不会对任何变色修饰剂产生反应。

解决方案,禁用标准 chevron 并使用自己的自定义(列表的行为相同),如下所示

HStack {
    Text(text)
    NavigationLink(destination: Text("D")) { EmptyView() } // disabled  !
    Image(systemName: "chevron.right")                     // << custom !!
        .foregroundColor(Color.red)                        // any color !!!
}

演示2

于 2020-03-27T15:54:39.590 回答
2

在我的环境中,默认 chevron 显示在自定义 chevron 下。

添加不透明度(0),它的工作原理。

NavigationLink(destination: Text("D")) { EmptyView() }
    .opacity(0) // Add this
于 2020-12-05T11:28:32.543 回答
0

您可以使用该accentColor属性:

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")
      }.accentColor(.black)
    }
  }
}
于 2021-11-08T08:58:58.073 回答