How do you forcibly cancel a zooming open pinch gesture on a UIScrollView, say when the user has zoomed \"sufficiently\" far to trigger a new action?
How's this:
-(void)handlePinchGesture:(UIPinchGestureRecognizer *)sender
{
if (![sender isEnabled])
{
[sender setEnabled:YES];
}
if (sender.state == UIGestureRecognizerStateChanged)
{
if (sender.scale > 2.0)
{
NSLog(@"Upper bound reached");
[sender setEnabled:NO];
}
else if (sender.scale < 0.75)
{
NSLog(@"Lower bound reached");
[sender setEnabled:NO];
}
}
}
Just register this selector(handlePinchGesture:) with the gesture recognizer. This will make a sort of "one-shot" pinch handler which stops when it reaches either the upper or lower threshold.