如何更改 SwiftUI 和 iOS 14 中的单元格背景颜色?

Posted

技术标签:

【中文标题】如何更改 SwiftUI 和 iOS 14 中的单元格背景颜色?【英文标题】:How do I change the cell backgroundcolor in SwiftUI and iOS 14? 【发布时间】:2020-10-01 00:41:49 【问题描述】:

在我的 ios 应用程序中,我有 SwiftUI 列表。在 iOS 14 之前,将其放入 AppDelegate 可以改变单元格的背景颜色:

UITableViewCell.appearance().backgroundColor = .black

在 iOS 14 之后,这不再改变颜色,它已恢复为默认的白色。

这也不起作用:

UITableViewCell.appearance().backgroundConfiguration?.backgroundColor = .black

在 iOS 14 的 SwiftUI 中是否有另一种方法可以更改 UITableViewCell 的颜色?

【问题讨论】:

【参考方案1】:

您需要对单元格使用 listRowBackground 修饰符,并且仍然可以为整个表格视图背景使用外观,如下例所示

使用 Xcode 12 / iOS 14 测试

init() 
    UITableView.appearance().backgroundColor = UIColor.yellow

var body: some View 
    List 
        ForEach(0..<5, id: \.self) 
            Text("Hello \($0)").foregroundColor(.blue)
        .listRowBackground(Color.black)
    

【讨论】:

这成功了!有没有办法改变分隔符的颜色?

以上是关于如何更改 SwiftUI 和 iOS 14 中的单元格背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 SwiftUI 中更改列表的背景颜色? 2020 (iOS 14)

iOS 14,Swift UI 2 更改 NavigationLink 内选定列表项的背景颜色

SwiftUI如何更改for循环中的值

如何在 Xcode 12 的新 SwiftUI App 生命周期中更改 window.rootViewController?

列表 iOS 14 SwiftUI 中的额外间距

SwiftUI 在新的 Foundation Formatters iOS 15 中更改语言