У меня есть следующая настройка для моего экрана приложения iOS 14:
import SwiftUI
import UIKit
struct MyNavigationView: View {
init() { // Color Settings
UINavigationBar.appearance().barTintColor = UIColor(named:"ToolbarBackgroundColor")
UINavigationBar.appearance().tintColor = UIColor(named: "ToolbarForegroundColor")
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor(named:"ToolbarForegroundColor")]
UIToolbar.appearance().barTintColor = UIColor(named:"ToolbarBackgroundColor")
UIToolbar.appearance().tintColor = UIColor(named: "ToolbarForegroundColor")
}
var body: some View {
NavigationView {
Text("Hello, SwiftUI 2.0 World!") // content
.navigationBarTitleDisplayMode(.inline)
.navigationTitle("MyApp") // navigation bar title
.toolbar(content: {
// navigation bar leading item
ToolbarItem(placement: .navigationBarLeading) {
Text("Hi!").foregroundColor(Color("ToolbarForegroundColor"))
}
// navigation bar trailing item
ToolbarItem(placement: .navigationBarTrailing) {
VStack(content: {
Text("up").foregroundColor(Color("ToolbarForegroundColor"))
Text("down").foregroundColor(Color("ToolbarForegroundColor"))
})
}
// toolbar at the bottom of the screen
ToolbarItemGroup(placement: .bottomBar) {
Button(action:{
print("home")
}) {
Image(systemName: "house.fill")
.renderingMode(.template)
.foregroundColor(Color("ToolbarForegroundColor"))
}
Spacer()
Button(action:{
print("pages")
}) {
Image(systemName: "square.grid.3x2")
.renderingMode(.template)
.foregroundColor(.white)
}
Spacer()
Button(action:{
print("like")
}) {
Image(systemName: "star.fill")
.renderingMode(.template)
.foregroundColor(.white)
}
Spacer()
Button(action:{
print("user")
}) {
Image(systemName: "person.fill")
.renderingMode(.template)
.foregroundColor(.white)
}
}
})
}
}
}
И работает до сих пор...
Но у меня есть несколько предупреждений для строки
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor(named:"ToolbarForegroundColor")]
. Если я заменюUIColor
наColor
, напримерUINavigationBar.appearance().titleTextAttributes = [.foregroundColor: Color("ToolbarForegroundColor")]
, предупреждения исчезнут, но у меня произойдет сбой... В чем проблема?И я также хотел бы избавиться от заголовка панели навигации... Возможно ли это?