Iphone 为什么即使我覆盖TouchsMoved:withEvent:,UIScrollView的子类仍会滚动?

Iphone 为什么即使我覆盖TouchsMoved:withEvent:,UIScrollView的子类仍会滚动?,iphone,ios,ipad,uiscrollview,uikit,Iphone,Ios,Ipad,Uiscrollview,Uikit,在iOS 4中,我认为-touchsbegind:withEvent:,-touchsmoved:withEvent:,-touchsended:withEvent:,-touchscancelled:withEvent:是处理触摸的唯一可用方法 但是现在当我像这样重写这些方法时: - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { // not calling super. Doing nothing.

在iOS 4中,我认为-touchsbegind:withEvent:,-touchsmoved:withEvent:,-touchsended:withEvent:,-touchscancelled:withEvent:是处理触摸的唯一可用方法

但是现在当我像这样重写这些方法时:

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

在UIScrollView子类中,它仍然会滚动。他们是如何做到的?

UIScrollView使用UIPangestureRecognitor进行滚动。UIKit通过私有机制将事件发送到手势识别器,与TouchsBegind:withEvent:和相关方法分开。

@Mikhalivanokov UIPangestureRecognitor从3.2版开始提供。UIScrollView使用iOS 3.2上的UIPangestureRecognitor。在iOS 5.0之前,它不会直接将其作为panGestureRecognizer属性公开。如果查看早期系统上的gestureRecognizers属性的内容,您将在该数组中找到它。