我是swift的新手,并不确定这是否可行,但我遇到的问题是我在UICollectionView中,它是启用滚动的。默认情况下,我只想启用滚动。但是,如果用户持有足够长的时间,我希望禁用滚动并启用UIPanGestureRecognizer。我在UILongPress之后无法启用UIPanGesture。完成pangesture后,应再次启用滚动并禁用pan。
答案 0 :(得分:0)
首先,编译器抱怨你的变量没有默认值。
您可以通过添加初始化方法并在那里设置手势来解决此问题。
或者您可以将变量设置为Optional
变量,其默认值为nil
。但在那之后,你必须展开以获得真正的价值。
或者如果你真的知道这是什么:
class YourViewController: xxxx, yyyy {
lazy var panGesture: UIPanGestureRecognizer! = {
let pan = UIPanGestureRecognizer(…
pan.delegate = self
return pan
}
…
}
其次,您可以使用UIGestureRecognizerDelegate
来提供帮助。
首先,您的平移手势已被禁用。长按后,您将禁用集合视图isScrollEnabled
并启用平移手势。 (并且在完成平移手势后,您将禁用平移手势并重新启用集合视图isScrollEnabled
)