我一直在尋找所有其他類似的主題,使用UIGestureRecognizers,使用hitTest:withEvent,pointInside:withEvent:等等,但沒有什麼似乎是我需要實現的東西。傳播拖動觸摸到UIScrollView超級視圖
基本上我有一個主視圖(一個普通的UIViewController的self.view)和一個小的矩形UIScrollView附加在它的底部:scrollView充滿了一些UIImageViews,用戶可以像平常一樣滾動它。
但用戶也應該能夠從UIScrollView拖動一個UIImageView(或它的一個副本)到主視圖,而這正是我發現真的很困難,用同樣的拖動手勢,因此我需要一種方式:
1)區分正常的水平滾動手勢,應該由UIScrollView以通常的方式處理,並在圖像視圖上拖動手勢。
2)一旦識別到拖動手勢,應該將觸摸傳播到超級視圖,它將託管UIImageView的副本並使用同一拖動手勢繼續拖動主視圖,甚至超出UIScrollView的界限。
請注意,我知道如果UIScrollView的userInteractionEnabled = NO觸摸傳播到子視圖,但1)我想傳播它到超級視圖而不是子視圖,2)userInteractionEnabled屬性顯然成爲活動只有一次初始手勢終止,而我需要使用一個單一的拖動手勢。
非常感謝您的幫助。
您必須禁用默認啓用的delayContentTouches,這是一回事。 – nhahtdh
您的意思是允許userInteractionEnabled = NO立即變爲活動狀態?這是很好的知道,並不能解決整個問題,但可能會有所幫助,非常感謝你。 –
我沒有提及任何有關'userInteractionEnabled = NO'的信息,實際上應該是'YES'。至於拖動,當您的檢測平移手勢已經啓動時,您將創建或重新定位該對象到超級視圖以進行拖動;當檢測到手勢結束時,您將其放入具有適當座標的相應子視圖中。 – nhahtdh