首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到模态UIViewController的转换手势

到模态UIViewController的转换手势
EN

Stack Overflow用户
提问于 2013-09-29 15:17:24
回答 2查看 786关注 0票数 0

我正在使用一个UIPinchGestureRecognizer来触发一个模态UIViewController的外观,它允许在图像周围缩放和平移。从本质上讲,它允许您隔离一幅图像,并对其进行更详细的探索。

新的UIViewController有自己的捏和pan手势识别器。

我注意到的一个缺点是,一旦新的UIViewController出现,用户必须把手指从屏幕上拿开,在新的手势识别器识别触摸事件之前再次开始点击。

理想情况下,我希望点击是无缝的,这样一旦模态UIViewController出现,用户就可以继续捏和/或摇。是否有任何方法将触摸事件从先前的视图控制器转换为模态控制器,从而触发新UIViewController中的手势识别器?

用于触发模态缩放视图控制器的代码:

代码语言:javascript
复制
- (IBAction)zoomImage:(UIPinchGestureRecognizer *)sender
{
    // if the gesture was released while the scale factor is sufficiently big, show the modal view
    if ( sender.state == UIGestureRecognizerStateEnded && sender.scale > 1.6f ) {
        // prepare the modal view controller
        ZoomViewController *viewControllerZoom = [[ZoomViewController alloc] initWithNibName:nil bundle:nil];
        [viewControllerZoom setImage:self.imageViewImage.image andScale:sender.scale];

        // present the modal view controller
        [self presentViewController:viewControllerZoom animated:YES completion:nil];

        // gracefully transition the image back to its original size
        [UIView animateWithDuration:0.5f animations:^{
            self.imageViewImage.transform = CGAffineTransformIdentity;
        }];
    }
    else if ( sender.state == UIGestureRecognizerStateEnded || sender.state == UIGestureRecognizerStateCancelled ) {
        // revert to normal size on end
        [UIView animateWithDuration:0.5f animations:^{
            self.imageViewImage.transform = CGAffineTransformIdentity;
        }];
    }
    else if ( sender.scale >= 1.0f ) {
        // scale in place
        CGFloat scale = sender.scale;
        self.imageViewImage.transform = CGAffineTransformScale(CGAffineTransformIdentity, scale, scale);
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-29 15:24:57

我不认为是这样的,您需要继续使用该手势所附加的、并且用户已经在与之交互的现有视图。我从未尝试过,但我想将视图移动到模态视图控制器中是行不通的。调整视图的大小应该有效,所以您可以根据需要更改视图并添加其他子视图,以提供所需的UI,而不是使用模式。

票数 0
EN

Stack Overflow用户

发布于 2016-10-12 16:32:00

我不确定,但按下面的方式做。-使您的视图控制器(将呈现)作为代表。-频繁地在委托上使用onGesture事件火方法--在触发的方法中缩放或缩放视图。-在视图控制器上添加PinchGesture (将显示),并使用处理程序进行缩放和缩放

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19079656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档