【问题标题】:How to change background color of the NavigationView in SwiftUI?如何在 SwiftUI 中更改 NavigationView 的背景颜色?
【发布时间】:2020-01-01 06:49:31
【问题描述】:

我正在尝试使用此代码更改 NavigationView(不是导航栏)的背景颜色:

NavigationView {
    Text("Text")
}
.background(Color.clear)

但它不起作用。 另外,我尝试改变 UIView 的外观:

UIView.appearance().backgroundColor = UIColor.black

但它也不起作用。

实际结果如下:

想要的结果是:

有人知道怎么做吗?

【问题讨论】:

标签: ios swift swiftui


【解决方案1】:

先看看这个结果:

如您所见,您可以像这样设置 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 或尝试伪造导航视图(不推荐)。

【讨论】:

  • 我想改变 NavigationView 的背景颜色,而不是 UINavigationBar
  • navigationView 是什么意思?你的意思是导航内的整个视图?
  • 你是说背景图片?
  • 背景图片放在NavigationView下。
  • 目前似乎没有解决办法。我尝试了我所知道的一切,但无济于事。
猜你喜欢
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 2019-12-21
  • 1970-01-01
  • 1970-01-01
  • 2020-02-19
  • 2021-02-11
相关资源
最近更新 更多