我正在尝试设置的背景色NavigationView。我正在尝试通过ZStack使用下面的代码(部分来自SwiftUI教程)添加一个。然而,这只是以往的白色,除非我替换NavigationView...用Spacer()
NavigationView
ZStack
NavigationView...
Spacer()
var body: some View { ZStack { NavigationView { List { Toggle(isOn: $userData.showFavoritesOnly) { Text("Favourites") } ForEach(userData.landmarks) { landmark in if !self.userData.showFavoritesOnly || landmark.isFavorite { NavigationLink(destination: LandmarkDetail(landmark: landmark)) { LandmarkRow(landmark: landmark) } } } } .navigationBarTitle(Text("Landmarks"), displayMode: .large) } }.background(Color.blue.edgesIgnoringSafeArea(.all)) }
我可以设置单个列表项的颜色,但我希望整个背景显示为蓝色
与相同UINavigationBar。但是,由于还没有直接的api,您可以使用appearance以下命令进行更改:
UINavigationBar
appearance
UINavigationBar.appearance().backgroundColor = .orange UINavigationBar.appearance().tintColor = .green UINavigationBar.appearance().barTintColor = .yellow UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.red] UINavigationBar.appearance().largeTitleTextAttributes = [.foregroundColor: UIColor.red]
您应该将其放置在可以确保编译器在init()方法内部读取的位置。
init()
请注意,其中一些将 在Xcode 11 beta 5以下无法正常工作 。