簡體   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