我有一个UITableView,有时需要你触摸它两次才能选择一个单元格.
更多细节:
>只有在桌子一直向上滚动或完全向下滚动之后才需要两次触摸.
>只有第二次触摸甚至调用didSelectRowAtIndexPath.
>当桌子以自然的“向上滚动的位置”打开时,只需轻轻一按即可选择单元格.
>如果您只是滚动一点(不是一直向下/向上),单元格将只需单击一下即可选择.
>如果单元格没有填满整个表格并且不需要滚动,则可以正常工作.
>一直走到顶部或底部,你必须触摸两次.
我有一种感觉,第一次触摸实际上是使UITableViewCells可选择或以某种方式激活表.
我检查过的事情:
>我的代码肯定不会在任何地方调用didDeselectRowAtIndexPath.
>没有UIGestureRecognizers正在使用setCancelsTouchesInView:.
桌子上的其他设置:
self.tableView.scrollEnabled = YES; self.tableView.showsVerticalScrollIndicator = NO; self.tableView.bounces = NO; self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
是什么导致了这个?
更新
奇怪的是,设置self.tableView.bounces = YES;解决了这个问题.
如果有人有更好的答案,我仍在调查根本原因.显然我希望桌子不要弹跳,但如果它需要关键功能则不行.
解决方法
可能是你实现了didDeselect而不是didSelect?