ios - 在 SwiftUI 中实现列表删除功能

标签 ios swift core-data swiftui swiftui-list

我关注了this document (和 this one )使用 SwiftUI 将删除功能添加到应用程序中的我的列表中。两个页面都说,一旦添加 .onDelete(perform: ...) 代码,您将能够滑动并获得 Delete 按钮。然而,这不是我所看到的。代码可以编译,但我在滑动时看不到任何内容。

我的列表由如下代码支持:

@FetchRequest(
    entity: ...,
    sortDescriptors: []
) var myList: FetchedResults<MyEntity>

而不是@State。这会是一个问题吗?

下面是更多相关代码,以防有用:

private func deleteSpot(at index: IndexSet) {
    print(#function)
}

.........

var body: some View {
    VStack {
        ForEach(self.myList, id: \.self.name) { item in
            HStack {
                Spacer()
                Button(action: {
                    self.showingDestinList.toggle()
                    .....
                    UserDefaults.standard.set(item.name!, forKey: "LocSpot")
                }) {
                    item.name.map(Text.init)
                        .font(.largeTitle)
                        .foregroundColor(.secondary)
                }
                Spacer()
            }
        }.onDelete(perform: deleteSpot)
    }

最佳答案

动态容器的滑动删除仅适用于List,因此请

var body: some View {
    List {              // << here !!
        ForEach(self.myList, id: \.self.name) { item in
            HStack {

              // ... other code

            }
        }.onDelete(perform: deleteSpot)
    }
}

关于ios - 在 SwiftUI 中实现列表删除功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63046164/

相关文章:

iphone - XCode 在 uitableview 之上创建一个 uiview

ios - 使用 Google place API 从 lat long 获取附近的地点

swift - 类型 'CASPageMenu' 的值没有成员 'currentPageIndex'

Swift 在一个 if 语句中展开多个相互依赖的可选项

ios - 如何使用 Restkit 0.20.0 创建/发布新的托管对象到服务器?

objective-c - 同步核心数据 : iOS to OSX, 反之亦然

ios - 为什么 View 的边距必须为 -20 才能使其接近屏幕末尾,为什么不为零?

ios - 如何在 Objective c 中将整数数组转换为 NSString?

json - 使用带有 Youtube Analytics 的 Swift 4 解码 JSON 以获得嵌套的非键控数组

iphone - 获取请求返回一个对象数组 - NSFetchedResultsController 返回 null