在 SwiftUI 中更改 UIView 背景颜色
Change UIView background color in SwiftUI
大家好。我正在使用 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)
}
}
希望这有助于理解:
var body: some View {
Color.purple
.overlay(
VStack(spacing: 20) {
Text("Overlay").font(.largeTitle)
Text("Example").font(.title).foregroundColor(.white)
})
.edgesIgnoringSafeArea(.vertical)
}
另一个如果你使用组中的视图
var body: some View {
Group {
Text("Hello SwiftUI!")
}
.background(Color.black)
}
为了改变背景颜色,我认为目前大多数人和我自己使用的方法 是 使用 ZStack。我没有发现在其上放置 UIViewRepresentable 的问题。
var body: some View {
ZStack {
Color.blue
.edgesIgnoringSafeArea(.all)
VStack {
Text("Hello World!")
}
}
}
大家好。我正在使用 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)
}
}
希望这有助于理解:
var body: some View {
Color.purple
.overlay(
VStack(spacing: 20) {
Text("Overlay").font(.largeTitle)
Text("Example").font(.title).foregroundColor(.white)
})
.edgesIgnoringSafeArea(.vertical)
}
另一个如果你使用组中的视图
var body: some View {
Group {
Text("Hello SwiftUI!")
}
.background(Color.black)
}
为了改变背景颜色,我认为目前大多数人和我自己使用的方法 是 使用 ZStack。我没有发现在其上放置 UIViewRepresentable 的问题。
var body: some View {
ZStack {
Color.blue
.edgesIgnoringSafeArea(.all)
VStack {
Text("Hello World!")
}
}
}