我正在尝试使用以下代码更改NavigationView(而非导航栏)的背景颜色:
NavigationView {
Text("Text")
}
.background(Color.clear)
但是它不起作用。 另外,我尝试更改UIView外观:
UIView.appearance().backgroundColor = UIColor.black
但是它也不起作用。
实际结果显示如下:
所需的结果是:
有人知道该怎么做吗?
答案 0 :(得分:2)
首先查看此结果:
如您所见,您可以像这样设置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)
}
}
}
第一个是window
:
window.backgroundColor = .magenta
您面临的问题是我们无法删除SwiftUI的HostingViewController
的背景色(尚未),因此您无法通过视图层次结构看到navigationView
(您所称的内容)。您应该等待API或尝试伪造导航视图(不推荐)。