我开始尝试SwiftUI,我很惊讶,它似乎不是简单的改变一个视图的背景颜色。你如何使用SwiftUI做到这一点?
当前回答
Swift UI中场景委托上的代码
内容查看background-color
window.rootViewController ? .view。backgroundColor = .lightGray
其他回答
这个解决方案有效吗?:
添加以下行到SceneDelegate: window.rootViewController?backgroundColor = .black
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if let windowScene = scene as? UIWindowScene {
window.rootViewController?.view.backgroundColor = .black
}
struct Soview: View {
var body: some View {
VStack{
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
.frame(maxWidth:.infinity,maxHeight: .infinity)
}.background(Color.yellow).ignoresSafeArea(.all)
}
}
列表:
所有SwiftUI的列表都是由uitableview iOS支持的。所以你需要改变tableView的背景颜色。但由于Color和UIColor值略有不同,你可以去掉UIColor。
struct ContentView : View {
init(){
UITableView.appearance().backgroundColor = .clear
}
var body: some View {
List {
Section(header: Text("First Section")) {
Text("First Cell")
}
Section(header: Text("Second Section")) {
Text("First Cell")
}
}
.background(Color.yellow)
}
}
现在你可以使用你想要的任何背景(包括所有颜色)
首先看看这个结果:
正如你所看到的,你可以像这样设置视图层次结构中每个元素的颜色:
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或尝试伪造这些视图(不推荐)。
Xcode 11.5
简单地使用ZStack添加背景颜色或图像到你的SwiftUI的主视图
struct ContentView: View {
var body: some View {
ZStack {
Color.black
}
.edgesIgnoringSafeArea(.vertical)
}
}
你可以简单地改变一个视图的背景颜色:
var body : some View{
VStack{
Color.blue.edgesIgnoringSafeArea(.all)
}
}
你也可以使用ZStack:
var body : some View{
ZStack{
Color.blue.edgesIgnoringSafeArea(.all)
}
}
推荐文章
- 如何删除默认的导航栏空间在SwiftUI导航视图
- 在c#代码中设置WPF文本框的背景颜色
- Android:为什么视图没有maxHeight ?
- 在android中从上下文获取活动
- CSS:背景图像上的背景色
- 如何在Swift中删除视图的所有子视图?
- SwiftUI中的活动指标
- 如何使div背景颜色透明的CSS
- 如何用SwiftUI调整图像大小?
- 我能在视图中得到当前控制器的名称吗?
- 在SwiftUI中创建一个VStack填充屏幕宽度
- CSS:设置背景色为窗口宽度的50%
- 如何设置不透明度(Alpha)的视图在Android
- 我如何改变一个视图的背景颜色?
- 是否有一种方法以编程方式滚动滚动视图到特定的编辑文本?