2012-05-11 8 views
0

iOS 4で私は信じられたtoouchesBegan:withEvent:、-touchesMoved:withEvent :, toouchesEnded:withEvent :, toouchesCancelled:withEvent:は、タッチを処理するためにビューに実装するために利用できる唯一のメソッドでした。touchesMoved:withEvent:をオーバーライドしても、UIScrollViewのサブクラスがスクロールされるのはなぜですか?

しかし、私はこのように、これらのメソッドオーバーライドしたときに、今:UIScrollViewのサブクラスで

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    // not calling super. Doing nothing. 
} 

を、それはまだスクロールします。彼らはどうしたのですか?

答えて

2

UIScrollViewは、UIPanGestureRecognizerを使用してスクロールします。 UIKitは、touchesBegan:withEvent:および関連するメソッドとは別のプライベートメカニズムを使用して、イベントをジェスチャ認識プログラムに送信します。

+1

@MikhaloIvanokov UIPanGestureRecognizerは3.2以降で利用できます。 – borrrden

+0

UIScrollViewは、iOS 3.2以降のUIPanGestureRecognizerを使用します。 iOS 5.0まではpanGestureRecognizerプロパティとして直接公開されません。以前のシステムでgestureRecognizersプロパティの内容を調べると、その配列に見つかります。 –