Как установить цвет фона пустого столбца в списке в swiftUI? - PullRequest
0 голосов
/ 17 января 2020

Я считаю, что .listRowBackground (Color.Red.Blu sh) может установить столбец строки списка, но в списке есть пустые строки, которые по-прежнему белые. Когда я прокручиваю список, он также показывает некоторую белую область. Может ли кто-нибудь помочь решить эту проблему? Это также полезно для того, чтобы рассказать мне, как изменить цвет с помощью 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 Ответ

0 голосов
/ 18 января 2020

Я бы рекомендовал добавить глобальный стиль в ваш класс 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)
...