为什么UITableViewRow需要长按才能触发segue?

时间:2017-09-05 21:10:09

标签: ios swift uitableview uikit

我的UITableview位于一个容器内(需要嵌入segue,因此我可以使用静态表视图单元格),父视图控制器的父级是UIViewcontroller容器。

为什么表格视图中的一行需要很长时间才能触发segue?

如果我删除了父UIViewcontroller容器,那么它可以正常工作。

1 个答案:

答案 0 :(得分:0)

延迟可能是为了检测您触摸的子视图而产生的延迟。

当您触摸应用程序中窗口的任何位置时,应用程序的窗口会在视图层次结构中最顶层视图上调用tuples = [(*x, y, z) for (x, y, z) in zip(grid, flattened_values, timestamps)] 方法,该方法以递归方式调用hitTest:withEvent:以查看其子视图以最终检测到实际接收和处理触摸事件的视图。所以基本上视图控制器中的子视图数量越多,实际视图响应的延迟就越多。对hitTest:withEvent:的递归调用有点延迟,这就是你看到延迟的原因。 删除您的父视图控制器不会增加太多延迟,因为您减少了视图控制器的子视图数量。此外,当涉及更多滚动视图(或更多一般的子视图)时,您可以让hitTest:withEvent:遍历更多子视图以返回处理触摸事件的视图。