[英]How do I enable a single touch to handle both UILongPressGestureRecognizer and UIPanGestureRecognizer?
[英]How do I only enable UIPanGestureRecognizer only after UILongPressGesture?
我是新手,不知道是否可行,但是我遇到了一个问题,即我处于启用了滚动的UICollectionView中。 默认情况下,我只希望启用滚动。 但是,如果用户保持足够长的时间,我希望禁用滚动并启用UIPanGestureRecognizer。 在UILongPress之后启用UIPanGesture时遇到问题。 完成手势后,应再次启用滚动并禁用平移。
首先,编译器抱怨您的变量没有默认值。
您可以通过添加一个initialize方法并在那里设置手势来解决此问题。
或者,您可以将变量设置为Optional
变量,其默认值为nil
。 但是在那之后,您必须进行包装以获得真正的价值。
或者,如果您真的知道这是什么:
class YourViewController: xxxx, yyyy {
lazy var panGesture: UIPanGestureRecognizer! = {
let pan = UIPanGestureRecognizer(…
pan.delegate = self
return pan
}
…
}
其次,您可以使用UIGestureRecognizerDelegate
来提供帮助。
首先,您的平移手势被禁用。 长按后,您将禁用集合视图isScrollEnabled
并启用平移手势。 (并且在完成手势后,您将禁用手势并重新启用集合视图isScrollEnabled
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.