如何在SwiftUI中设置NavigationView背景色

我正在尝试设置的背景色NavigationView。我正在尝试通过ZStack使用下面的代码(部分来自SwiftUI教程)添加一个。然而,这只是以往的白色,除非我替换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().backgroundColor = .orange

UINavigationBar.appearance().tintColor = .green

UINavigationBar.appearance().barTintColor = .yellow

UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.red]

UINavigationBar.appearance().largeTitleTextAttributes = [.foregroundColor: UIColor.red]

您应该将其放置在可以确保编译器在init()方法内部读取的位置。

请注意,其中一些将 。

以上是 如何在SwiftUI中设置NavigationView背景色 的全部内容, 来源链接: utcz.com/qa/435102.html

回到顶部