2011-07-19 72 views
0

我有一个UIViewController,它使用一个UIScrollView,并在该ScrollView中有一个UIImageView。为什么不调用UIPinchGestureRecognizer,而scrollViewDidEndZooming是?

我想识别捏和缩放相应。我不需要缩放,我只需要显示不同的图像。

它几乎看起来像这样的问题:UIView UIPinchGestureRecognizer problem

我已经试过几件事情:

  • 集contentMode到UIViewContentModeScaleAspectFit

  • 设置multipleTouchEnabled = YES

  • 设置userInteractionEnabled = YES

然而,它仍然不总是捕捉到事件。

这里是我的手势分配给视图,非常简单:

UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(zoomPinch:)]; 
    [MediaScroller addGestureRecognizer:pinchRecognizer]; 
    [pinchRecognizer release]; 

另外,我注意到scrollViewDidEndZooming叫我委托的,但规模变量始终是1.0。怎么可能?

总是调用scrollViewDidEndZooming,而捏合方法(zoomPinch)并不总是被调用。任何原因为什么会发生?我该如何解决它? :)

回答

5

我相信你需要实现这个你recognizer delegate

pinchRecognizer.delegate = self; 

然后,自我类:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
} 

由于类已经认识捏(变焦),也许你需要启用多于一个处理器捏。

+0

我愿意尝试解决这个问题。但是,当我将代理设置为self时,它不会编译。作为'自己'是: '@interface image_zoomController:UIViewController {' –

+0

对不起,我在ObjectiveC中不是很好,我已经将UIGestureRecognizerDelegate添加到协议中,现在编译。让我们看看它是否有效! :) –

+0

它的工作原理!你是我的英雄 :) –

相关问题