在 iOS 上,如果主视图具有 UITapGestureRecognizer,则不会调用按钮操作。如何让它发挥作用?
Posted
技术标签:
【中文标题】在 iOS 上,如果主视图具有 UITapGestureRecognizer,则不会调用按钮操作。如何让它发挥作用?【英文标题】:On iOS, a button Action is not invoked if the main view has a UITapGestureRecognizer. How to make it work? 【发布时间】:2012-05-21 14:22:29 【问题描述】:在使用 Xcode 4.3.2 的全新 ios 项目中,如果按钮具有使用 Interface Builder 创建的 Action,并且打印出 "button is tapped on"
,则一切正常。
但是,当主视图添加UITapGestureRecognizer
用于单击时,即使点击了按钮,也会认为主视图已被点击,但不会调用按钮 Action。
有没有办法让它工作? (是否建议不要使用Button Action,而是使用UITapGestureRecognizer作为按钮?但如果是滑块,那么我们确实需要Action)
【问题讨论】:
【参考方案1】:排除[UIGestureRecognizer delegate]
中的按钮或将cancelsTouchesInView
设置为NO
。
【讨论】:
我试过了,gestureRegMainViewTappedOn.cancelsTouchesInView = NO;
效果很好。如果是[UIGestureRecognizer delegate]
,您介意添加吗,代码是什么样的?谢谢。以上是关于在 iOS 上,如果主视图具有 UITapGestureRecognizer,则不会调用按钮操作。如何让它发挥作用?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建具有适当不透明度的 UITextField 附件视图 iOS7,甚至复制键?