2012-05-11 54 views
0

在iOS 4中,我認爲-touchesBegan:withEvent :, -touchesMoved:withEvent :, -touchesEnded:withEvent :, -touchesCancelled:withEvent:是唯一可用於視圖中處理觸摸的方法。爲什麼UIScrollView的子類仍然滾動,即使我重寫touchesMoved:withEvent:?

但現在當我重寫這些方法是這樣的:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    // not calling super. Doing nothing. 
} 
在一個UIScrollView子類

,它仍然滾動。他們是如何做到的呢?

回答

2

UIScrollView使用UIPanGestureRecognizer進行滾動。 UIKit通過私有機制向手勢識別器發送事件,與touchesBegan:withEvent:和相關方法分開。

+1

@MikhaloIvanokov UIPanGestureRecognizer從3.2開始可用。 – borrrden

+0

UIScrollView使用iOS 3.2中的UIPanGestureRecognizer。它只是直到iOS 5.0纔將其作爲panGestureRecognizer屬性直接公開。如果您查看早期系統上的gestureRecognizers屬性的內容,您可以在該數組中找到它。 –

相關問題