如何在 SwiftUI mac 应用程序中更改屏幕背景颜色?
Posted
技术标签:
【中文标题】如何在 SwiftUI mac 应用程序中更改屏幕背景颜色?【英文标题】:How to change the screen background color in SwiftUI mac app? 【发布时间】:2021-05-27 10:24:10 【问题描述】:我有以下代码:
var body: some View
NavigationView
List
ForEach(users) user in
HStack
NetworkImage(
url: URL(string: "https://via.placeholder.com/100x100")
).frame(width: 50, height: 50).cornerRadius(8.0)
Text(user.name)
.navigationTitle("Users")
.onAppear
self.getUsers()
现在,如何在列表视图中移除这个半透明背景并使用像白色这样的纯色?
【问题讨论】:
【参考方案1】:您可以使用 listRowBackground() 修饰符为列表应用颜色。
List
ForEach(0..<10)
Text("Row \($0)")
.listRowBackground(Color.red)
上面是简单的 ListView 和您的代码 ==
var body: some View
NavigationView
List
ForEach(users) user in
HStack
NetworkImage(
url: URL(string: "https://via.placeholder.com/100x100")
).frame(width: 50, height: 50).cornerRadius(8.0)
Text(user.name)
.listRowBackground(Color.red)
.navigationTitle("Users")
.onAppear
self.getUsers()
我希望这对你有用。
【讨论】:
它会产生这样的结果i.imgur.com/tvs3ITF.png。如何为列表视图周围的填充添加颜色? 试试.colorMultiply(.red)
而不是.listRowBackground(Color.red)
我这样做了,但现在卷轴搞砸了。 Color.white
也不起作用
是的全白【参考方案2】:
迟到的答案...
您是否尝试将您的列表嵌入到ZStack
中?并在列表之前应用颜色视图?
var body: some View
NavigationView
ZStack
Color.white.edgesIgnoringSafeArea(.all) //<--- HERE!
List
ForEach(users) user in
HStack
NetworkImage(
url: URL(string: "https://via.placeholder.com/100x100")
).frame(width: 50, height: 50).cornerRadius(8.0)
Text(user.name)
.navigationTitle("Users")
.onAppear
self.getUsers()
【讨论】:
以上是关于如何在 SwiftUI mac 应用程序中更改屏幕背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章
当我们在文本和图像之间切换按钮内容时,如何停止 SwiftUI 更改固定填充?