当按钮覆盖在tableview顶部时,如何防止tableview单元注册一个tap?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当按钮覆盖在tableview顶部时,如何防止tableview单元注册一个tap?相关的知识,希望对你有一定的参考价值。
我的应用程序有一个标签栏,我在标签栏的中心添加了一个大按钮。为此,我只需创建一个按钮并将其作为子视图添加到选项卡栏。
按钮的顶部位于标签栏的顶部边缘,位于桌面视图的顶部。这是一个截屏。
当我点击按钮的底部(绿色箭头)时,它工作正常,但如果我点击按钮的顶部(红色箭头) - 覆盖桌面视图的位 - 按钮的动作不会被触发,而是按钮下的单元格正在注册一个水龙头。
我怎么能阻止这个?
答案
如果视图框架超出其超视图框架,则不会收到超出超视图框架的任何触摸事件。这就是这里发生的事情,因为大按钮可能是TabBar的子视图。要解决此添加按钮作为TabBarControllers视图的子视图而不是TabBar并设置适当的约束。
另一种解决方案是为这个大按钮创建一个专用的UIButton
子类,并覆盖hitTest(point:event:)
方法。
供参考:Capturing touches on a subview outside the frame of its superview using hitTest:withEvent:
以上是关于当按钮覆盖在tableview顶部时,如何防止tableview单元注册一个tap?的主要内容,如果未能解决你的问题,请参考以下文章