根据UIButton Pressed的持续时间,相同的Button必须执行不同的任务。
如何计算按下UIButton的持续时间?
答案 0 :(得分:1)
将UILongPressGestureRecognizer
附加到您的按钮并设置minimumPressDuration
属性。
您可以将多个手势识别器连接到同一个按钮,以获得不同的最短印刷持续时间。
如果您在不同的手势识别器之间存在“冲突”,则可以使用–requireGestureRecognizerToFail:
解决这些冲突,以指定只有在另一个手势识别器没有的情况下才能识别手势。
答案 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
}