我正在创建一个针对 iOS 15+ 的 SwiftUI 应用程序,需要使用
.swipeActions(_:)
我注意到的一件事是,每当我添加 .foregroundColor(_:)
来更改滑动操作 Label
颜色时,它都不会应用。有谁知道如何将标签颜色覆盖为提供的颜色?短暂性脑缺血发作。
我的代码重现我的问题(请记住我的最低部署目标是 iOS 15):
struct SecondView: View {
var body: some View {
VStack {
List {
ForEach(1..<Contact.contacts.endIndex) { index in
Text("Cell number \(index)")
.padding(40)
}
.swipeActions(edge: .leading) {
Button {
// Do something
} label: {
Label(title: {
Text("Left Swipe")
.foregroundColor(.black) // <--- Doesnt Work
}, icon: {
Image(systemName: "pin")
.foregroundColor(.black) // <--- Doesnt Work
})
}
// .foregroundColor(.black) // <--- Doesnt Work
.tint(.gray)
// .foregroundColor(.black) // <--- Doesnt Work
}
.swipeActions(edge: .trailing) {
Button {
// Do something
} label: {
Label("Delete", systemImage: "trash")
.foregroundColor(.white)
}
.tint(.red)
}
}
}
.listStyle(GroupedListStyle())
}
}
struct SecondView_Previews: PreviewProvider {
static var previews: some View {
SecondView()
}
}
我已对所有不起作用的
.foregroundColor()
添加了注释,并注释掉了其中的一些。
MessageCell(message: message)
.swipeActions(edge: .leading) {
Button { store.toggleUnread(message) } label: {
if message.isUnread {
Label("Read", systemImage: "envelope.open")
} else {
Label("Unread", systemImage: "envelope.badge")
}
}
.tint(.blue)
}
.swipeActions(edge: .trailing) {
Button(role: .destructive) { store.delete(message) } label: {
Label("Delete", systemImage: "trash")
}
Button { store.flag(message) } label: {
Label("Flag", systemImage: "flag")
}
.tint(.orange)
}