2011-02-26 126 views
2

:)我正在攔截,並重新發送手勢發送到滾動視圖。模擬滾動視圖內的拖動

我想要做什麼:

殺死所有的滾動視圖gestureRecognizers。我已經完成了這個。

在滾動視圖中添加新的gestureRecognizers。我也完成了這一點。

使新識別器的行爲與舊識別器相同。我沒有完成這個,我需要幫助。

我添加的唯一新識別器是一個平移手勢識別器,它需要至少兩個手指。我希望它的行爲完全像單指滾動。 :)

響應由新識別器生成的回調來完成此操作時,必須發送什麼樣的調用?

+0

你想要兩個手指滾動如在Mac OS X?並禁用所有其他接口,如單指滾動或縮放捏? – MHC

+0

是的,但我完成了所有這些,所以不用擔心:) –

回答

4

我認爲你試圖實現自己的自定義手勢識別器已經過於複雜。

UIPanGestureRecognizer類具有minimumNumberOfTouches屬性,您應該可以將其設置爲2,以適用於您的UIScrollView。

這樣做只是抓住你的觀點的手勢識別器...

myScrollView.gestureRecognizers; 

迭代數組找到平移姿態結束了...

if ([gestureRecogniser isKindOfClass:[UIPanGestureRecognizer class]]) 

投下你gestureRecogniser指向更具體的類型...

UIPanGestureRecognizer *panGestureRecogniser = (UIPanGestureRecognizer *)gestureRecogniser; 

最後設置其minimumNumberOfTouches屬性...

panGestureRecogniser.minimumNumberOfTouches = 2; 

您可能必須做的唯一的其他事情是爲您的視圖啓用多點觸控 - UIView具有應設置爲true的multipleTouchEnabled屬性。

+0

感謝您的解決方案:) –

0

在斯威夫特,你可以只寫

myScrollView.panGestureRecognizer.minimumNumberOfTouches = 2