繁体   English   中英

如何仅在UILongPressGesture之后才启用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM