停止 UIGestureRecognizer 对 UIView 内的 UIButtons 进行操作
Posted
技术标签:
【中文标题】停止 UIGestureRecognizer 对 UIView 内的 UIButtons 进行操作【英文标题】:Stop a UIGestureRecognizer from operating on UIButtons inside a UIView 【发布时间】:2012-12-04 15:34:50 【问题描述】:我已在我的应用程序中将UITapGestureRecognizer
附加到UIView
。如果用户双击它,该视图内的按钮会随机重新排列。工作正常,可爱。
但是,用户也可以通过双击其中一个按钮来触发此操作,甚至可以通过点击屏幕不同部分的两个按钮来触发。
只有当两次点击在x
像素数范围内,并且在视图本身上,而不是其中的任何元素(例如这些UIButton
s)时,是否有一种明智/简单的方法来让这种双击工作?
【问题讨论】:
【参考方案1】:我认为通常的方法是使用shouldReceiveTouch
。查看this question 进行冗长的讨论和所有详细信息。
【讨论】:
【参考方案2】:执行此操作的一种方法是将单击手势识别器附加到按钮 - 这将抢占按钮的正常触摸事件,因此您必须将按钮的操作方法放入手势识别器的操作方法中。然后,您将向双击器添加一个依赖项,使其仅在单击器失败时触发:
[self.doubleTapper requireGestureRecognizerToFail:self.tapper];
【讨论】:
我实际上已经在按钮上有了一个,效果很好。但是双击按钮仍然会触发视图的双击方法。 @lukech,你确定你的插座连接正确吗?我已经对此进行了测试,它对我有用。以上是关于停止 UIGestureRecognizer 对 UIView 内的 UIButtons 进行操作的主要内容,如果未能解决你的问题,请参考以下文章
有时在 UIGestureRecognizer 处理程序后未触发 IBAction