问题场景
tableView支持侧滑删除和编辑。在iOS7以上的系统没有任何问题,但是在iOS7上面侧滑删除触发不了。
问题原因
我在xib中设置了tableViewallowsMultipleSelectionDuringEditing为YES。
为什么
测试:
在没有设置allowsMultipleSelectionDuringEditing的时候,向左侧滑动调用<b>-(NSIndexpath *)_indexPathForSwipeRowAtPoint:(CGPoint)point</b>的方法。而设置allowsMultipleSelectionDuringEditing = YES之后,侧滑无效。
推测可能是什么原因导致向_indexPathForSwipeRowAtPoint:没有被调用。因为断点时堆栈信息也有限,这个也是私有API。所以希望通过重写该方法知道更多的东西。
之后我将自己使用的tableView继承UITableView并且实现了_indexPathForSwipeRowAtPoint:方法。结果在设置allowsMultipleSelectionDuringEditing = YES之后侧滑会调用该方法,并且也可以触发侧滑删除了。
推测:
_indexPathForSwipeRowAtPoint:里面有什么判断,当你设置allowsMultipleSelectionDuringEditing为YES的时候这个方法不会返回返回index,后续事件不会进行。感觉应该是苹果的一个bug,在iOS7以后没有这个问题了。