您基本上需要做的是覆盖以下任何或全部:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
在您的 UIView 子类(或实际上是 UIResponder 的任何子类)中。然后,您可以随心所欲地处理该事件,例如执行您在问题中提到的任何事情。
例如,下面是 Apple 的简单事件处理程序示例代码:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch* touch = [touches anyObject];
NSUInteger numTaps = [touch tapCount];
if (numTaps < 2) {
[self.nextResponder touchesBegan:touches withEvent:event];
} else {
[self handleDoubleTap:touch];
}
}
iPhone 应用程序编程指南中的事件处理部分应该为您提供入门所需的所有信息。