2017-07-31 40 views
0

我是新來的swift,不知道這是否可能,但我遇到了一個問題,我在UICollectionView,它啓用滾動。默認情況下,我只想要啓用滾動。但是,如果用戶保持足夠長的時間,我想要禁用滾動並啓用UIPanGestureRecognizer。在UILongPress之後啓用UIPanGesture時遇到問題。 pangesture完成後,應該再次啓用滾動並禁用平移。如何僅在UILongPressGesture後才啓用UIPanGestureRecognizer?

回答

0

首先,編譯器抱怨你的變量沒有默認值。

您可以通過添加初始化方法並在那裏設置手勢來解決此問題。

或者您可以將變量設置爲Optional變量,該變量的默認值爲nil。但之後,你必須打開包裝才能獲得真正的價值。

或者,如果你真正知道這是什麼:

class YourViewController: xxxx, yyyy { 
    lazy var panGesture: UIPanGestureRecognizer! = { 
     let pan = UIPanGestureRecognizer(… 
     pan.delegate = self 
     return pan 
    } 
… 
} 

其次,你可以使用UIGestureRecognizerDelegate幫助。


首先,您的平移手勢被禁用。長按之後,您將禁用收集視圖isScrollEnabled並啓用平移手勢。 (並且在平移手勢完成之後,您禁用平移手勢並重新啓用收集視圖isScrollEnabled

相關問題