我正在尝试使用以下代码更改 NavigationView(不是导航栏)的背景颜色:
NavigationView {
Text("Text")
}
.background(Color.clear)
但它不起作用。 另外,我尝试更改 UIView 的外观:
UIView.appearance().backgroundColor = UIColor.black
但这也行不通。
实际结果如下:
期望的结果是:
有人知道怎么做吗?
最佳答案
先看这个结果:
如您所见,您可以像这样设置 View 层次结构中每个元素的颜色:
struct ContentView: View {
init(){
UINavigationBar.appearance().backgroundColor = .green
//For other NavigationBar changes, look here:(https://stackoverflow.com/a/57509555/5623035)
}
var body: some View {
ZStack {
Color.yellow
NavigationView {
ZStack {
Color.blue
Text("Some text")
}
}.background(Color.red)
}
// iOS 16 - No need for tweaking the appearance
/* .toolbarBackground(.green, in: .navigationBar) */
}
}
第一个是window
:
window.backgroundColor = .magenta
您面临的问题是我们无法移除 SwiftUI 的 HostingViewController
的背景色(目前),因此您无法通过 View 层次结构。您应该等待 API 或尝试伪造导航 View (不推荐)。
关于ios - 如何更改 SwiftUI 中 NavigationView 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57685679/