Создание представлений SwiftUI с чистым фоном?

Я пробовал любое количество способов сделать белый фон здесь четким. Кажется, ничего не работает.

      struct OverlayChatView: View {
    var body: some View {
        ZStack {
            Color.clear
            List(0 ..< 5) { item in
                ChatMessageCell()
            }
            .listRowBackground(Color.clear)
            .background(Color.clear)
        }
    }
}

struct ChatMessageCell: View {
    var body: some View {
        HStack {
            Image(systemName: "person.crop.circle")
                .aspectRatio(1.0, contentMode: .fill)
            Text("This is a chat message of certain length to try to force a wrap in the preview.")
        }
    }
}

struct OverlayChatView_Previews: PreviewProvider {
    static var previews: some View {
        ZStack {
            Color.blue
                .ignoresSafeArea()
            OverlayChatView()
                .frame(maxWidth: 300.0, maxHeight: 300.0)
                .background(Color.clear)
        }
    }
}

Кажется, что у многих людей возникла проблема, и некоторые решают ее с помощью не-стартера:

      .onAppear {
    UITableView.appearance().backgroundColor = UIColor.clear
    UITableViewCell.appearance().backgroundColor = UIColor.clear
}

Я могу установить отдельные ячейки элемента списка на определенный непрозрачный цвет фона. Я даже не могу установить OverlayChatView или же List к сплошному цвету, не говоря уже о прозрачном.

iOS 14 (симулятор, а не устройство)

1 ответ

Завернутый в ForEach и установите цвет фона.

      struct OverlayChatView: View {
    var body: some View {
        ZStack {
            Color.clear
            List {
                ForEach(0 ..< 5) {  item in //<-- Here
                    ChatMessageCell()
                }
                .listRowBackground(Color.blue) //<-- Here
            }
            .background(Color.clear)
        }
    }
}

Или вы можете использовать colorMultiply также.

      struct OverlayChatView: View {
    var body: some View {
        ZStack {
            Color.clear
            List(0 ..< 5) { item in
                    ChatMessageCell()
                
            }.colorMultiply(Color.blue) //<-- Here
            .background(Color.clear)
        }
    }
}
Другие вопросы по тегам