2011-07-12 171 views

回答

0

我們可以設置2個行動,以您的按鈕,並衡量這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 
} 
1

UILongPressGestureRecognizer附加到您的按鈕並設置minimumPressDuration屬性。 您可以將多個手勢識別器附加到同一個按鈕,以適應不同的最短按壓時間。

如果您在不同的手勢識別器之間存在「衝突」,則可以使用–requireGestureRecognizerToFail:來解決這些問題,以指定僅在另一手勢不是時纔會識別手勢。

看看relevant document