检测触摸次数

Detect number of touches

我有一个问题,在我的应用程序中,我有一个标签,当我触摸它时,一个方法被触发,我用 -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 实现,问题是当我触摸时,该方法被触发(一切正常)但我想当我再次触摸另一种方法时触发。怎么做???

你说的是触摸后改变状态。大多数人只会使用布尔值或整数枚举来跟踪他们所处的状态,并相应地分叉代码。但是,如果您需要区分点击、双击、三次点击、平移或按住,那么您应该查看手势识别器,特别是观看介绍它们的 WWDC 视频(2011? ).

I want when I touch once again another method to fire.

-touchesEnded:withEvent: 和其他触摸处理方法将始终触发以响应触摸事件——您无法更改它。您可以 做的是查看这些方法的实现中的触摸,找出您想要处理该特定事件的方法,然后调用它:

- (void)touchesEnded:(NSSet *)touches
           withEvent:(UIEvent *)event
{
    switch ([touches count]) {
       case 1: [self oneTouch:touches forEvent:event]; 
               break;
       case 2: [self twoTouches:touches forEvent:event]; 
               break;
       default: [self moreThanTwoTouches:touches forEvent:event];
               break;
    }
}

显然,您不必根据触摸次数来决定调用哪个方法——这只是一个示例。您可以随意使用任何信息,例如处理触摸事件的对象的状态。