当将按钮叠加在表格视图顶部时,如何防止表格单元格记录点击?

时间:2019-04-14 12:05:54

标签: swift uibutton tableview uigesturerecognizer tap

我的应用程序有一个标签栏,并且我在标签栏的中央添加了一个大按钮。为此,我只需创建一个按钮并将其作为子视图添加到选项卡栏即可。

按钮的顶部位于选项卡栏的顶部边缘,位于表格视图的顶部。这是一个屏幕截图。

enter image description here

当我点击按钮的底部(绿色箭头)时,它可以正常工作,但是如果我点击按钮的顶部(红色箭头)-覆盖表格视图的位-按钮的动作不触发,按钮下方的单元格正在注册一个点击。

如何防止这种情况?

1 个答案:

答案 0 :(得分:1)

如果视图框架超出其超级视图框架,则不会收到任何超出超级视图框架的触摸事件。这就是这里发生的情况,因为大按钮可能是TabBar的子视图。要将此添加按钮解析为TabBarControllers视图而不是TabBar的子视图,并设置适当的约束。

另一种解决方案是为此大按钮创建专用的UIButton子类并覆盖hitTest(point:event:)方法。

供参考: Capturing touches on a subview outside the frame of its superview using hitTest:withEvent: