将图标与circle()一起将图标包装在ZSTACK中,但是圆圈不会显示。
SETTING.TINT(.CLEAR)删除默认矩形。插图.frame(宽度:50,高度:50),但似乎不会影响可敲击区域。
import SwiftUI
struct SwipeActionsExample: View {
@State private var items = ["Item 1", "Item 2", "Item 3"]
var body: some View {
NavigationView {
List {
ForEach(items, id: \.self) { item in
Text(item)
.padding()
.frame(maxWidth: .infinity, alignment: .leading)
.background(Color.gray.opacity(0.2))
.cornerRadius(10)
.foregroundColor(.white)
.padding(.vertical, 5)
.swipeActions(edge: .trailing) {
Button(role: .destructive) {
deleteItem(item)
} label: {
Image(systemName: "trash.circle.fill")
.resizable()
.scaledToFit()
.frame(width: 50, height: 50)
.foregroundStyle(.white, .red)
}
.tint(.clear)
Button {
renameItem(item)
} label: {
Image(systemName: "pencil.circle.fill")
.resizable()
.scaledToFit()
.frame(width: 50, height: 50)
.foregroundStyle(.white, .blue)
}
.tint(.clear)
}
.listRowBackground(Color.black)
}
}
.listStyle(.plain)
.background(Color.black)
.navigationTitle("Swipe Actions")
}
}
private func deleteItem(_ item: String) {
items.removeAll { $0 == item }
}
private func renameItem(_ item: String) {
print("Renaming \(item)")
}
}
.swipeActions(edge: .trailing) {
Button(role: .destructive) {
deleteItem(item)
} label: {
// See https://stackoverflow.com/a/79198934/20386264
ResizedSymbol(systemName: "trash.circle.fill", targetSize: 50)
.foregroundStyle(.white, .red)
}
.tint(.clear)
Button {
renameItem(item)
} label: {
ResizedSymbol(systemName: "pencil.circle.fill", targetSize: 50)
.foregroundStyle(.white, .blue)
}
.tint(.clear)
}