Если вы довольны решением для iOS 4 и выше, я использовал распознаватели UIGesture, и у меня никогда не было проблем.
Вот пример длинного жеста нажатия (нажмите и удерживайте):
// Long press gesture recogniser
UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleLongPressGesture:)];
[self.view addGestureRecognizer:longPressGesture];
[longPressGesture release];
И тогда вы можете обрабатывать даже в вашем handleLongPressGesture:
методе:
-(void)handleLongPressGesture:(UILongPressGestureRecognizer*)sender
{
if (sender.state == UIGestureRecognizerStateEnded || sender.state == UIGestureRecognizerStateChanged)
return;
else {
// Your app logic here...
}
}