【发布时间】:2023-03-29 05:29:01
【问题描述】:
新引入的 swipeActions 修饰符不能直接与显示排列的数据行的 List 容器一起使用。但是,如果我使用 ForEach(一种从已识别数据的基础集合中按需计算视图的结构),它就可以正常工作。
以下代码不起作用并显示 swipeActions
struct SwipeButtonDemoView: View {
let listItems = WWDCViewModel().sessions
var body: some View {
NavigationView {
VStack {
Spacer()
List(listItems) { session in
HStack {
Image(systemName: "play")
Text(session.title)
.font(.callout)
}
.swipeActions(edge: .leading) {
Button {
print("Bookmark")
} label: {
Label("Bookmark", systemImage: "bookmark")
}.tint(.indigo)
}
}
.listRowSeparator(.hidden)
}
.listStyle(.inset)
.navigationTitle("WWDC 21")
}
}
}
以下代码有效并显示 swipeActions..
struct SwipeButtonDemoView: View {
let listItems = WWDCViewModel().sessions
var body: some View {
NavigationView {
VStack {
Spacer()
List {
ForEach(listItems) { session in
HStack {
Image(systemName: "play")
Text(session.title)
.font(.callout)
}
.swipeActions(edge: .leading) {
Button {
print("Bookmark")
} label: {
Label("Bookmark", systemImage: "bookmark")
}.tint(.indigo)
}
}
.listRowSeparator(.hidden)
}
}
.listStyle(.inset)
.navigationTitle("WWDC 21")
}
}
}
为什么它不能直接与 List 一起使用?但是,它可以与 ForEach 一起按预期工作!!!
【问题讨论】:
标签: ios swift swiftui swiftui-list