UIScrollView 并取消缩放捏合手势

UIScrollView and cancel a zooming pinch gesture(UIScrollView 并取消缩放捏合手势)
本文介绍了UIScrollView 并取消缩放捏合手势的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

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?

推荐答案

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

To prevent user-controller zooming and panning but still allow programmatic zooming and panning of a scrollview, the best approach is to override the UIScrollView's -addGestureRecognizer: method in a subclass.

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

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

Each gesture recognizer is simply disabled, for finer control (for ex. allowing the pan control but only allow zooming via a double tap for instance) you'd simply check the incoming gesture recognizer via -isKindOfClass: and disabling as appropriate.

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

希望这会有所帮助.

这篇关于UIScrollView 并取消缩放捏合手势的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Hardware Volume buttons change in app volume(硬件音量按钮更改应用程序音量)
Cocos2d - How to check for Intersection between objects in different layers(Cocos2d - 如何检查不同层中对象之间的交集)
Resume game cocos2d(恢复游戏 cocos2d)
Cocos2D + Disabling only Retina iPad Graphics(Cocos2D + 仅禁用 Retina iPad 图形)
How to convert 32 bit PNG to RGB565?(如何将 32 位 PNG 转换为 RGB565?)
Proper cocos2d scene restart?(正确的 cocos2d 场景重启?)