Изменение цвета NavigationBarTitle для watchOS в SwiftUI

https://stackru.com/images/cbb4d4d3e67e2e8efb41b2cf0e584b51e a0d32e1.png

На изображении выше id хотел бы изменить -02:49 к такому цвету, как Color.blue

Я пытался:

struct ContentView: View {

    var body: some View {
        PlayerView().accentColor(Color.blue)

    }
}

и я также попытался добавить его в фактический PlayerView следующим образом:

struct PlayerView: View {

    var body: some View {
        VStack{
            .... 

        }.navigationBarTitle(Text(“-2:49”))
         .accentColor(.blue)

    }

}

Я также пробовал:

   struct PlayerView: View {

    var body: some View {
        VStack{
            .... 

        }.navigationBarTitle(Text(“-2:49”).foregroundColor(.blue))

    }

}

5 ответов

Решение

На данный момент для изменения цвета navigationBarTitle нет прямого api в SwiftUI.

Но вы можете изменить это так:
1) Перейдите вInterface.storyboard файл внутри вашего AppName WatchKit App.
2) ВыберитеHosting Controller Scene, Идти к File Inspector и изменить Global Tint к вашему индивидуальному цвету.

С WatchOS7/Xcode12 с использованием жизненного цикла приложения SwiftUI у вас не будет раскадровки.

Теперь в активах приложения есть цвет AccentColor, с помощью которого вы можете его изменить.

Вот код, если кто-то хочет изменить цвет заголовка навигации в WatchOS

      .navigationTitle {    
  Text("Header").foregroundColor(.blue) 
}

Модификатор для изменения цвета текста -.foregroundColor(), поэтому вы должны написать:

Text(“-2:49”).foregroundColor(.blue)

Цвет акцента - это то, что было известно в UIKit как цвет оттенка, то есть цвет элементов, на которые можно нажимать. ForegroundColor используется для элементов, на которые нельзя нажимать, чтобы придать им определенный цвет.

Ответ @CodeChimp правильный, но не идеальный. Если вы обновляете старый проект до SwiftUI, вам также необходимо настроить компилятор каталога активов в вашей цели следующим образом;

Если у вас нет интерфейса, это означает, что вы полностью перешли на SwiftUI. Для этого условия вам нужно выбрать цель «WatchKit Extension» и внести изменения.

Другие вопросы по тегам