Car*_*son 7 ios swiftui swiftui-list ios16
我的应用程序是用 SwiftUI 构建的,除了一些我目前正在修复的设计怪癖之外,大部分都可以像 iOS 16 一样运行。
怪癖之一是列表的背景颜色。以前我曾使用 Introspect 设置列表背景的颜色,但由于列表已在 iOS16 中重新实现,因此该方法不再有效。
我已经通过使用新的scrollContentBackground修饰符为iOS 16设备解决了这个问题:
List() {
some foreach logic here
}
.background(color)
.scrollContentBackground(.hidden)
Run Code Online (Sandbox Code Playgroud)
除了一个问题之外,这按预期工作。
当列表为空时,背景颜色将被忽略,它根据浅色或深色模式设置显示白色或黑色背景(甚至不包括分组的背景颜色)。
有其他人遇到过这个问题吗(或者我做错了什么?),如果是的话,你想出了什么解决方案?
谢谢,C
可能并不适合所有人,但我有解决我自己问题的方法。
当列表为空时,我使用覆盖层来显示消息,因此我决定在这里使用旧的 ZStack 技巧,它似乎按预期工作。
例子:
List() {
ForEach(data, id: \.id) { item in
// some foreach logic here
}
}
.background(Color.red)
.scrollContentBackground(.hidden)
.overlay(Group {
if(data.isEmpty) {
ZStack() {
Color.red.ignoresSafeArea()
Text("Empty List!")
}
}
})
Run Code Online (Sandbox Code Playgroud)
希望这对其他人有帮助!
| 归档时间: |
|
| 查看次数: |
2198 次 |
| 最近记录: |