Установить цвет переключения в SwiftUI - PullRequest
3 голосов
/ 06 июня 2019

Я реализовал переключение после следования руководству Apple по вводу пользователя .В настоящее время это выглядит так:

Это код, который создает этот пользовательский интерфейс:

NavigationView {
    List {
        Toggle(isOn: $showFavoritesOnly) {
            Text("Show Favorites only")
        }
    }
}

Теперь я бы хотел, чтобы цвет Toggle на был голубым, а незеленый.
Я пытался:

Toggle(isOn: $showFavoritesOnly) {
    Text("Show Favorites only")
}
.accentColor(.blue)
.foregroundColor(.blue)
.background(Color.blue)

Ничего из этого не помогло, и я не смог найти никаких других модификаторов, таких как tintColor.

Как мне поменять цвет Toggle?

1 Ответ

3 голосов
/ 06 июня 2019

Я пока не нашел способа напрямую изменить цвет Toggle, но альтернативный способ иметь синий переключатель или любые другие пользовательские виды - это создать собственный вид. Чтобы сделать собственный синий переключатель в его простейшей форме:

struct BlueToggle : UIViewRepresentable {
  func makeUIView(context: Context) -> UISwitch {
    UISwitch()
  }

  func updateUIView(_ uiView: UISwitch, context: Context) {
    uiView.onTintColor = UIColor.blue
  }
}

struct ContentView : View {
    var body: some View {
      BlueToggle()
    }
}

Результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...