当前位置: 首页 > 面试题库 >

在Swift 3中从UITableView删除行?

林丁雷
2023-03-14
问题内容

我是Swift编码和学习的新手,我正在关注swift 2的教程并使用swift 3,因此在继续学习时会遇到一些问题,这是我一直坚持的问题。

我有一张名字表,我正在为它们做一个滑动和删除功能,将它们从一个名称变量中删除,该变量是一个数组。我选择了与xcode内的教程最相似的函数并将其填充,但是当我单击删除按钮时,我的应用程序会随机崩溃。这是我的删除按钮代码…

    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {

    let deleteAction = UITableViewRowAction(style: .destructive, title: "Delete") { (rowAction: UITableViewRowAction, indexPath: IndexPath) -> Void in

        print("Deleted")

        self.catNames.remove(at: indexPath.row)
        self.tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
        self.tableView.reloadData()
    }

问题答案:

适用于 Swift 3Swift 4

使用UITableViewDataSourcetableView(:commit:forRowAt:)方法

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
  if editingStyle == .delete {
    print("Deleted")

    self.catNames.remove(at: indexPath.row)
    self.tableView.deleteRows(at: [indexPath], with: .automatic)
  }
}


 类似资料:
  • 我想实现一个功能,使用Swift 3.0将整个表单元格扫走。比如如何在iOS10的邮件应用程序中滑动删除。 重要的是要注意,我不是指滑动以显示删除按钮,然后处理删除。我的意思是用户可以在屏幕上从右向左滑动来删除。(还要注意,tableView是静态的,而不是动态的) 我必须为此实现UISWipleTestureRecognitor吗?

  • 我目前正在尝试将放置在不同的位置,而不是视图控制器的顶部。说到这里,它试图在顶部添加标题来说明导航栏,但这不是必需的,因为我的控制器顶部没有标题。 如果我把的左上角放在我想要的单元格位置,它不会把单元格放在那里: 现在,如果我只是向上移动表格视图,使单元格位于正确的位置,我会遇到另一个问题-滚动时单元格可以向上移动(这是用我的手指在导航控制器上方): 当我放手的时候,是的-单元格将在搜索栏的正下方

  • 我已经在我的应用程序中使用了上述代码。编辑部分工作正常,但问题是,只有当我们在单元格上从左向右滑动时,删除按钮才会出现。现在我有了一个菜单,可以像Facebook一样从左向右滑动。那么,我如何确保当用户从右向左滑动时,删除按钮出现呢。

  • 问题内容: tableview动画错误的视频 我有一个扩展/折叠其单元格的表格视图。 从iOS 11开始,tableView在插入和删除行时开始表现异常。contentSize在动画块发生之前已更改,因此,在视频中,您可以看到折叠的单元格上发生了错误的滚动回退。动画看起来不对。 这段代码在iOS 10上运行良好。有人知道苹果方面发生了什么变化吗?这是一个已知的问题? 问题答案: 我在iOS 11上

  • 我有两个ObservableList,其中一个包含一些歌曲,另一个包含与歌曲相关的目录。 我希望当从它的ObservableList中删除一个目录时,所有包含该目录的歌曲都从它们的ObservableList中删除。但是当我这样做的时候,只有带奇数id的歌曲被移除,带偶数id的仍然存在!!! 我的ObservableLists在另一个类中,“Controller”是包含ObservableList

  • 问题内容: 我有一个CTE,它是表上的一条select语句。现在,如果我从CTE中删除了1行,它会从我的基本表中删除该行吗? 如果我有一个临时表而不是CTE,是否也是如此? 问题答案: 检查DELETE语句文档, 可以 ,您可以使用CTE进行删除,这会影响基础表。同样对于UPDATE语句… 如果我有一个临时表而不是CTE,是否也是如此? 不,从临时表中删除只会影响临时表-与数据所来自的表没有任何关