Мы можем установить для вашей кнопки 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
}