检测触摸次数

时间:2015-05-27 13:27:18

标签: ios uilabel uigesturerecognizer touchesbegan

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

2 个答案:

答案 0 :(得分:2)

你正在谈论触摸后改变状态。大多数人只使用布尔值或整数枚举来跟踪他们所处的状态,并相应地分叉代码。但是,如果你需要在点击,双击,三击,平移或按住之间辨别,那么你应该看一下手势识别器,特别是观看WWDC视频的位置(2011年? )。

答案 1 :(得分:0)

  

我希望当我再次触摸另一种触发方法时。

-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;
    }
}

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

相关问题