UITableView单元格重新sorting拖动操作意外停止
我想弄清楚如何debugging以下scheme,以了解为什么UITableView单元不会重新sorting。
- 触摸“编辑”菜单项,将表视图置于编辑模式。
- 编辑模式适用于删除单元格。
- 尝试通过触摸并拖动单元格上的重新sorting控件来重新sorting单元格。
- 细胞轮廓在拖动方向上移动了几个像素,但是随后即使通过我的手指仍然在屏幕上拖动,也会回到原始位置。
在代码中:
- UITableViewDelegate:targetIndexPathForMoveFromRowAtIndexPath永远不会被调用。 这看起来与用户界面的反馈相一致,即在单元格位于另一个单元格之前,单元格会回弹到初始位置。
- UITableViewDataSource:canMoveRowAtIndexPath对所有行都返回true。
- UITableViewDataSource:moveRowAtIndexPath只要单元快速恢复到原始位置,就会始终被调用,并且sourceIndexPath和destinationIndexPath值是相同的。 –
相同的视图控制器代码和故事板可以正确地在另一个项目中重新sorting单元格。
我已经search了stackoverflow和Google一天,找不到任何引用将导致单元格拖动事件被取消的任何参考。
任何想法如何我可以方法debugging这个问题将不胜感激!
我find了答案,它与UITableView代码无关。
我的代码有一个编程创build的根视图控制器,处理显示/隐藏滑动菜单面板。
该视图控制器的viewDidLoad()创build一个panGestureRecognizer来跟踪滑动来显示/隐藏滑动菜单。 这个panGestureRecognizer没有通过触摸。
添加这个代码解决了这个问题:
panGestureRecognizer.cancelsTouchesInView = false