如何在swiftUI中的List中设置空列背景颜色?

Posted

技术标签:

【中文标题】如何在swiftUI中的List中设置空列背景颜色?【英文标题】:How to set empty column background color in List in swiftUI? 【发布时间】:2020-01-17 19:54:50 【问题描述】:

我发现 .listRowBackground(Color.Red.Blush) 可以设置列表行列,但是在列表中有一些空行仍然是白色的。当我在列表上滚动时,它也会显示一些白色区域。有人可以帮助解决这个问题吗?还感谢您告诉我如何使用 SegmentedPickerStyle 更改颜色。该视频显示了我的问题。 https://youtu.be/aEPw5hHBkFE 谢谢!

struct UserNotificationCellView: View 
@ObservedObject var userNotification: UserNotification
@ObservedObject var userNotifications: UserNotifications
    var body: some View 
       
             ......          
        
        .padding(.horizontal,20)
            .cornerRadius(14)
            .listRowBackground(Color.Red.Blush)
//          .background(Color.Red.Blush)
  

下面是我的列表代码

List 
            ForEach(userNotifications1.userNotificationsArray, id: \.notifyId)  (userNotification) in
                UserNotificationCellView(userNotification: userNotification,userNotifications: self.userNotifications1)
 //                        .listRowBackground(Color.Red.Blush)

            .colorMultiply(Color.Red.Blush)
            Spacer()
        .environment(\.defaultMinListRowHeight, 80)

【问题讨论】:

【参考方案1】:

我建议在您的 AppDelegate 类中添加一个全局样式。从这里,您可以通过外观更改 SwiftUI 当前无法访问的类属性。

UITableView.appearance().backgroundColor = .clear
UISegmentedControl.appearance().....

您可以在此处更改列表背景颜色和您需要的任何分段控件属性。

对于空单元格,您可以尝试添加一个空页脚

List 
    Section(footer: self.footer) 
        ForEach(userNotifications1.userNotificationsArray, id: \.notifyId)  (userNotification) in
                UserNotificationCellView(userNotification: userNotification,userNotifications: self.userNotifications1)
 //                        .listRowBackground(Color.Red.Blush)

            .colorMultiply(Color.Red.Blush)
        
    .environment(\.defaultMinListRowHeight, 80)

【讨论】:

以上是关于如何在swiftUI中的List中设置空列背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 列表中设置选定的行背景颜色?

使用 NavigationView 和 List 时如何更改 SwiftUI 中的背景颜色?

为啥在 SwiftUI 中显示视图时 List 的背景颜色不同?

在 SwiftUI 中修改 List 的背景颜色?

如何在swiftUI中将背景颜色添加到列表中

如何在 Vuetify 中设置 v-list 的背景颜色和大小?