我有一个 UITableView,有时需要您触摸它两次才能选择一个单元格。
更多细节:
- 只有在表格一直向上或一直向下滚动后才需要两次触摸。
- 只有第二次触摸甚至会调用
didSelectRowAtIndexPath
。 - 当表格以自然的“向上滚动位置”打开时,只需轻轻一按即可选择单元格。
- 如果您滚动一点点(而不是一直向下/向上),只需轻轻一按即可选择单元格。
- 如果单元格没有填满整个表格并且不需要滚动,它工作正常。
- 一直走到顶部或底部,你必须触摸两次。
我有一种感觉,第一次触摸确实使 UITableViewCells 可选择或以某种方式激活表格。
我检查过的东西:
- 我的代码绝对不会在任何地方调用
didDeselectRowAtIndexPath
。 - 没有
UIGestureRecognizers
使用setCancelsTouchesInView:
。
table 上的其他设置:
self.tableView.scrollEnabled = YES;
self.tableView.showsVerticalScrollIndicator = NO;
self.tableView.bounces = NO;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
这是什么原因造成的?
更新
奇怪的是,设置 self.tableView.bounces = YES;
解决了这个问题。
我仍在调查根本原因,以防有人有更好的答案。显然,我希望表格不会弹跳,但如果它需要关键功能,我就不会弹跳。
最佳答案
您可能实现了 didDeselect 而不是 didSelect?
关于iOS UITableViewCell 需要按两次才能调用 didSelectRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26351819/