【发布时间】:2019-09-06 16:32:24
【问题描述】:
大家好。我正在使用 SwiftUI 创建一个简单的 iOS 应用,我想将视图的背景颜色更改为我拥有的自定义背景颜色。
这是一件非常容易做到的事情,但如果不使用 ZStacks 或类似的变通方法,在 SwiftUI 中似乎是不可能实现的,例如,如果你使用 List,就无法工作。
我想更改视图的颜色,而不是使用具有自定义颜色的 ZStack,然后将其余视图放在上面。我在初始化我的视图时尝试使用UIView.appearance().backgroundColor = color,但随后所有视图都被隐藏并且屏幕被选择的颜色填充。
由于我不擅长解释,这里有一些描述问题的图片:
我的代码
import SwiftUI
struct TabController: View {
@State private var selection = 0
init() {
UIView.appearance().backgroundColor = UIColor(named: "backgroundColor")
}
var body: some View {
TabView(selection: $selection) {
HomePageView()
.tabItem {
Image(systemName: "house.fill")
.font(.title)
}
.tag(0)
Text("Second View")
.font(.title)
.tabItem {
Image(systemName: "bell.fill")
.font(.title)
}
.tag(1)
}.edgesIgnoringSafeArea(.top)
}
}
【问题讨论】:
-
创建另一个与您尝试设置背景颜色的视图大小相同的图层。然后确保新图层位于其他对象的后面,并在新视图上设置颜色。
-
只是好奇,为什么
ZStack不适合你?不会在两者上都设置背景吗?