【问题标题】:Swift / iOS 16 Empty SwiftUI List Background ColorSwift / iOS 16 空 SwiftUI 列表背景颜色
【发布时间】:2022-11-11 05:03:21
【问题描述】:

我的应用程序是在 SwiftUI 中构建的,除了一些我目前正在修复的设计怪癖之外,大部分情况下都可以与 iOS 16 一起使用。

怪癖之一是列表的背景颜色。以前我使用 Introspect 设置列表的背景颜色,但由于列表在 iOS16 中重新实现,这不再有效。

我已经通过使用新的 scrollContentBackground 修饰符为 iOS 16 设备解决了这个问题:

List() {
   some foreach logic here
}
.background(color)
.scrollContentBackground(.hidden)

除了一个问题外,这按预期工作。

当列表为空时,背景颜色将被忽略,它显示白色或黑色背景(甚至不是分组的背景颜色),具体取决于明暗模式设置。

有没有其他人遇到过这个问题(或者我做错了什么?)如果是这样,你有什么解决方案?

谢谢, C

【问题讨论】:

    标签: ios swiftui swiftui-list ios16


    【解决方案1】:

    可能不适合所有人,但我有解决自己问题的方法。

    当列表为空时,我使用覆盖来显示消息,因此我决定在这里执行旧的 ZStack 技巧,它似乎按预期工作。

    例子:

    List() {
       some foreach logic here
    }
    .background(Color.red)
    .scrollContentBackground(.hidden)
    .overlay(Group {
        if(list is empty) {
            ZStack() {
                Color.red.ignoresSafeArea()
                Text("Empty List!")
            }
        }
    })
    

    希望这对其他人有帮助!

    【讨论】:

      猜你喜欢
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多