1
shanigan 2015-06-02 21:28:31 +08:00
你需要这个delegate来enable slide to delete
optional func tableView(_ tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool 另外从截图上来看你的table view已经是在editing mode了,你是不是已经用了 func setEditing(_ editing: Bool, animated animate: Bool) ? 如果你要滑动删除的话 tableview.editing has to be NO. |
2
xenme OP @shanigan 第一个已经实现了,直接 return true,而且我看文档,default 都是 edittable,不过我还是实现了。
setEditing 我也实现了,注释掉之后也是一样。 往左滑动的话,tableview.editing 应该会自动变成 YES 吧,而且 editingStyle也应该变成 Delete。 搜了各种删除的教程和视频,应该只要实现之前那一个就 OK 了,不知道是不是 XCODE 或者 Simulator 的 BUG。 ======= xcode 6.3.2 (6D2105), Simulator Version 8.3 (SimulatorApp-565.9),没有证书,没法真机测试。 |
3
shanigan 2015-06-02 21:46:52 +08:00
@xenme 你截图中左边的删除按钮显示你的tableview已经是在editing mode了。你向左滑动肯定不会出现删除按钮。这么基本的一个功能是不可能会有bug的。
|
5
shanigan 2015-06-02 22:14:03 +08:00
try adding "override" to both delegates?
|
6
xenme OP @shanigan 这几个都是实现 DataSource 和 Delegate的 protocol,是不需要 override 的。
加了 override,xcode 直接报错。Method does not override any method from it's superclass,所以,也不是这个问题。 |
7
black 2015-06-03 01:56:34 +08:00 2
从你提供的线索看来,很大可能是你的 table view 宽度超过了屏幕宽度,检查一下你的布局约束吧。
|
8
shanigan 2015-06-03 06:44:27 +08:00 2
我回到家之后开了一个小的test project,只要你实现了commitEditingStyle那个delegate,滑动删除按钮是肯定会出现的。
我也觉得@black是正确的,从你的截图来看,你的table cell已经被滑动到左边去了,看不到按钮唯一的解释职能是你的tableview超宽。加一个constraint应该就可以。 如果你这个view没有其他组件的话,你完全可以直接用UITableviewController,拖拽一个table view到view controller的话你会碰到像这样的麻烦。 |
9
SeanChense 2015-06-03 08:37:38 +08:00 via iPhone 1
@black 说的应该是正解。
|