UIScrollView和取消一个缩放捏合的手势[英] UIScrollView and cancel a zooming pinch gesture

本文是小编为大家收集整理的关于UIScrollView和取消一个缩放捏合的手势的处理方法,想解了UIScrollView和取消一个缩放捏合的手势的问题怎么解决?UIScrollView和取消一个缩放捏合的手势问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

您如何强制取消 UIScrollView 上的缩放打开捏合手势,例如当用户"足够"缩放以触发新操作时?

推荐答案

为了防止用户控制器缩放和平移但仍允许程序化缩放和平移滚动视图,最好的方法是覆盖 UIScrollView's -addGestureRecognizer: 子类中的方法.

-(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
{
    //Prevent any of the default panning and zooming controls from working
    gestureRecognizer.enabled = NO;
    [super addGestureRecognizer:gestureRecognizer];
    return;
}

每个手势识别器都被禁用,为了更好地控制(例如,允许平移控制但只允许通过双击进行缩放),您只需通过 -isKindOfClass: 检查传入的手势识别器并酌情禁用.

-(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
{
    //Prevent zooming but not panning
    if ([gestureRecognizer isKindOfClass:[UIPinchGestureRecognizer class]]) 
    {
        gestureRecognizer.enabled = NO;
    }
    [super addGestureRecognizer:gestureRecognizer];
    return;
}

希望这会有所帮助.

本文地址:https://www.itbaoku.cn/post/924548.html