滚动时UITableView不响应某些触摸

时间:2016-05-25 10:58:04

标签: ios objective-c uitableview uiview

tableView高速滚动,并且用户尝试通过触摸停止时,tableView会继续滚动。并且用户只有在两次或三次触摸后才能停止滚动tableView。如果tableView滚动速度较低,tableView响应很快就会触及。

tableView显示包含大量子视图的单元格,并且我在一个视图上本地化了问题。 如果我设置problemView.userInteractionEnabled = NO,则滚动效果很好。要为userInteractionEnabled = NO但不是problemView的所有子视图设置problemView,请不要帮忙。

这里是diplaying cell的图像,problemView是带红​​框的视图。

Displaying cell

有人可以提出建议,如何解决问题?

4 个答案:

答案 0 :(得分:0)

有几种可能性:

您的自定义视图或其中一个超级视图将userInteractionEnabled设置为NO。

您可以在自定义视图的顶部或自定义视图中的表格视图顶部显示另一个视图。

表视图所在的自定义视图小于表视图(使用clipsToBounds = NO,可以看到超出其父视图边界的子视图,但通常不会与之交互)。或者对于堆栈中的另一个视图也是如此。

自定义视图(或其中一个超级视图)会覆盖pointInside:withEvent:或hitTest:withEvent:错误。

答案 1 :(得分:0)

可能是因为它认为你正在以某种方式编辑它。试试allowsSelectionDuringEditing = YESHere is more information使用UITableView。

答案 2 :(得分:0)

如果您在UITableViewCell中使用NSTimer,那么我已经遇到了您所讨论的异常操作。在这种情况下,您需要使用显式调度的计时器替换隐式计划的计时器。

答案 3 :(得分:0)

对我来说,问题在于在单元格的子视图上使用userInteractionEnabled = true带有点击处理程序会导致滚动失败。不确定为什么是这种情况。在我的情况下,我通过在表视图上使用didSelectRowAt来解决此问题,而不是在子视图上使用自定义单击处理程序。然后,滚动和点击处理均按我的意愿进行。