特定手势的同时手势识别
Posted
技术标签:
【中文标题】特定手势的同时手势识别【英文标题】:Simultaneous gesture recognition for specific gestures 【发布时间】:2015-06-14 13:31:38 【问题描述】:我正在尝试启用同时手势识别,但仅适用于 UIPinchGestureRecognizer
和 UIRotationGestureRecognizer
手势。我不希望它适用于任何其他手势。如果我将以下属性设置为 true,它允许同时识别所有手势,如何将其限制为仅旋转和缩放?
func gestureRecognizer(UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer) -> Bool
return true
【问题讨论】:
【参考方案1】:确保你的类实现UIGestureRecognizerDelegate
class YourViewController: UIViewController, UIGestureRecognizerDelegate ...
将手势的delegate
设置为self
yourGesture.delegate = self
为您的班级添加委托功能
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool
if (gestureRecognizer is UIPanGestureRecognizer || gestureRecognizer is UIRotationGestureRecognizer)
return true
else
return false
【讨论】:
别忘了让自己成为 UIGestureRecognizerDelegate 别忘了设置 yourGesture.delegate = self @budidino 我在 UIImageView 的子类上添加手势。我启用了 userInteraction,设置了两个手势的委托,但它仍然不会调用委托方法。 @Skywalker 我在同一条船上(UIView
在UIScrollView
中的子类):添加了所有内容,但从未调用过函数。你解决了吗?【参考方案2】:
swift 5.1 任意 2 美分
// 假设您需要更喜欢捏而不是平移:
//UIGestureRecognizerDelegate
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer) -> Bool
if gestureRecognizer is UIPinchGestureRecognizer
return true
return false
【讨论】:
以上是关于特定手势的同时手势识别的主要内容,如果未能解决你的问题,请参考以下文章
如何在ios中的特定collectionview单元格上应用手势识别器