UIScrollView and cancel a zooming pinch gesture

前端 未结 3 479
难免孤独
难免孤独 2021-01-07 06:14

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?

3条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-07 06:55

    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.

提交回复
热议问题