3

Have a strange issue where about 15% of the time, when selecting a cell with a UITableView the cell highlight flashes quickly and didSelectRowAtIndexPath is not called. 其余时间它工作正常。

测试了它是如何被选择的(快/慢指甲等),但似乎并非如此。看起来是半随机的。

有什么想法可能导致这种情况吗?

IOS 6.x

[补充] 感谢到目前为止的评论。

如果在单击鼠标(模拟器)时正在移动,则问题可能会重复。即使表设置为 .scrollEnabled = false 它仍然在发生。此外,在“快速”情况下,didHighlightRowAtIndexPath 会触发,而 didSelectRowAtIndexPath 不会触发。

同样的事情也发生在 IOS 5.x 上......

[结论]

好吧,事实证明,表格的滚动已关闭,并且“移动水龙头”似乎更加挑剔。打开滚动实际上使“移动水龙头”不那么挑剔。我刚刚发现其他一些帖子几乎都说了同样的话。对于禁用滚动并在没有选择的情况下产生“快速突出显示”的表格视图来说,这是一个奇怪的结论。看起来这就是为什么他们在 IOS 6 中添加了 didHighlight 来尝试解决这个“问题”。

4

3 回答 3

1

是否有可能从单元格中看到的视图正在吸收触摸而不是单元格?也许你在单元格中有一个手势识别器,它们优先于简单的触摸事件

于 2013-05-23T19:38:02.613 回答
0

您正在稍微向上或向下移动手指,导致表格滚动。您的项目将不会被选中,并且突出显示将消失。我之前通过跟踪 tableView:didHighlightRowAtIndexPath 中的行来处理这个问题,然后在 tableView:didUnhighlightRowAtIndexPath: 中执行操作。如果这是您的 ui 中的一个选项,您也可以通过使 tableView 不可滚动来解决您的问题。

于 2013-05-23T21:57:41.023 回答
0

似乎由于某种原因您的单元格被禁用了。在显示单元格之前尝试设置cell.enabled = TRUE;,看看它是否修复了任何问题。

于 2013-05-23T20:52:51.767 回答