In Apple's document, Event Handling Guide for iOS, the section "Best Practices for Handling Multitouch Events":
If you handle events in a subclass of UIView, UIViewController, or (in rare cases) UIResponder,
You should implement all of the event-handling methods (even if it is a null implementation).
Do not call the superclass implementation of the methods.
and
If you handle events in a subclass of any other UIKit responder class,
You do not have to implement all of the event-handling methods.
But in the methods you do implement, b开发者_C百科e sure to call the superclass implementation.
Why? I don't understand the rationale behind point 2 of both cases. Doesn't it depend on the different situations?
It probably relates to the later point:
Do not explicitly send events up the responder (via nextResponder); instead, invoke the superclass implementation and let the UIKit handle responder-chain traversal.
If you handle touchesBegan:withEvent: and touchesEnded:withEvent:, what does UIView do with touchesMoved:withEvent:? Is it supposed to forward it up the responder chain?
精彩评论