iPhone iOS如何在启用缩放时使UIScrollView与UIRotationGestureRecognizer一起工作?

Posted

技术标签:

【中文标题】iPhone iOS如何在启用缩放时使UIScrollView与UIRotationGestureRecognizer一起工作?【英文标题】:iPhone iOS how to make UIScrollView work with UIRotationGestureRecognizer when zooming is enabled? 【发布时间】:2012-04-06 15:53:39 【问题描述】:

我在 ios5 中工作,显然我应该能够使用 scrollView.pinchGestureRecognizer 控制或至少抑制 UIScrollView 的内部捏合手势识别器。

但是,我的代码似乎不起作用。识别器不会将我的班级视为代表,也不会等待我的旋转手势识别器失败。我该怎么做才能优先考虑旋转手势,然后再考虑捏合?

更准确地说,我遇到的问题是同时旋转和缩放的视图“飞离屏幕”向左下角,再也看不到了。

-(void)setup scrollViews

        [tempScrollView.pinchGestureRecognizer requireGestureRecognizerToFail:rotationRecognizer];
        tempScrollView.pinchGestureRecognizer.delegate = self;

        tempScrollView.maximumZoomScale = 4.0;
        tempScrollView.minimumZoomScale = 0.25;
//        
        tempScrollView.delegate = self;


-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

    return YES;


-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer


    if([gestureRecognizer isEqual:rotationRecognizer])
    
       NSLog(@"Rotation gesture");
    else 
        NSLog(@"Other gesture: %@", [gestureRecognizer class]);
    
    return YES;



    - (IBAction)rotateView:(id)sender 

        if([sender isKindOfClass:[UIRotationGestureRecognizer class]])
        
            UIRotationGestureRecognizer* recognizer = sender;

            float recognizerRotation = [recognizer rotation];
            CGAffineTransform transform = CGAffineTransformMakeRotation(recognizerRotation);
    activeView.transform = transform;

        

    

【问题讨论】:

【参考方案1】:

据我所知,UIScrollView 中的pinchGestureRecognizer 是只读的。 但是,您可以尝试继承 UIScrollView 并覆盖方法 addGestureRecognizer: 以禁用 pinchGestureRecognizer,然后添加您自己的自定义 pinchGestureRecognizer

【讨论】:

以上是关于iPhone iOS如何在启用缩放时使UIScrollView与UIRotationGestureRecognizer一起工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何在应用程序处于后台(ios)时使 FCM 通知正常工作?

iphone:UIScrollView 分页启用,无缩放和无预览

如何在没有缩放模式的 iPhone 6 上显示 iOS 应用程序

使用 Javascript 启用/禁用 iPhone Safari 的缩放?

如何使用 iOS 13 在 iPad/iPhone 上隐藏页面缩放栏

如何在单击时使自定义按钮键像 iPhone 按钮键一样大