Установить цвет Шеврона в списке SwiftUI в NavigationView - PullRequest
2 голосов
/ 27 марта 2020

У меня есть этот список в NavigationView.
В темном режиме Шеврон (красный круг) почти не виден.

enter image description here Как настроить цвет шеврона в списке.

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

1 Ответ

2 голосов
/ 27 марта 2020

Стандартный шеврон не является символом по растровому изображению, здесь он

demo1

, поэтому он не реагирует ни на какие модификаторы изменения цвета .

Решение, отключить стандартный шеврон и использовать собственный, пользовательский (поведение списка такое же), как показано ниже

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

demo2

...