Создание представлений 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)
}
}
}