计算UIButton按压持续时间

时间:2011-07-12 08:25:15

标签: cocoa-touch uibutton

根据UIButton Pressed的持续时间,相同的Button必须执行不同的任务。

如何计算按下UIButton的持续时间?

2 个答案:

答案 0 :(得分:1)

UILongPressGestureRecognizer附加到您的按钮并设置minimumPressDuration属性。 您可以将多个手势识别器连接到同一个按钮,以获得不同的最短印刷持续时间。

如果您在不同的手势识别器之间存在“冲突”,则可以使用–requireGestureRecognizerToFail:解决这些冲突,以指定只有在另一个手势识别器没有的情况下才能识别手势。

查看relevant document

答案 1 :(得分:0)

我们可以为您的按钮设置2个动作,并测量在这两个方法之间传递的时间:

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
}