Cocoa touch 计算按钮按下的持续时间

Cocoa touch 计算按钮按下的持续时间,cocoa-touch,uibutton,Cocoa Touch,Uibutton,根据按下UIButton的持续时间,同一个Button必须执行不同的任务 如何计算按下按钮的持续时间 将ui长按手势识别器连接到按钮上,然后设置minimumPressDuration属性。 您可以将多个手势识别器附加到同一按钮上,以获得不同的最小按下持续时间 如果不同的手势识别器之间存在“冲突”,可以使用–requiregestrerecognizertofail:解决冲突,以指定只有在另一个手势未被识别时才能识别该手势 请查看。我们可以为您的按钮设置两个操作,并测量调用这两个方法之间经过的时

根据按下UIButton的持续时间,同一个Button必须执行不同的任务


如何计算按下按钮的持续时间

ui长按手势识别器
连接到按钮上,然后设置
minimumPressDuration
属性。 您可以将多个手势识别器附加到同一按钮上,以获得不同的最小按下持续时间

如果不同的手势识别器之间存在“冲突”,可以使用
–requiregestrerecognizertofail:
解决冲突,以指定只有在另一个手势未被识别时才能识别该手势


请查看。

我们可以为您的按钮设置两个操作,并测量调用这两个方法之间经过的时间:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(100.0, 100.0, 100.0, 20.0);
[btn setTitle:@"Test" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(userEndsTap:) forControlEvents:UIControlEventTouchUpInside];
[btn addTarget:self action:@selector(userStartsTap:) forControlEvents:UIControlEventTouchDown];
在调用的两种方法中,您可以进行持续时间测量:

- (void)userEndsTap:(id)sender {
   NSLog(@"user ends tap");
   // stop measurement an do something different for different durations
}

- (void)userStartsTap:(id)sender {
   NSLog(@"user starts tap");
   // start measurement
}