为什么不调用UIPinchGestureRecognizer,而scrollViewDidEndZooming是?

Ste*_*iks 1 objective-c gesture ios

我有一个UIViewController,它使用UIScrollView,在Scrollview中它有一个UIImageView.

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

它几乎看起来像这个问题:UIView UIPinchGestureRecognizer问题

我尝试了几件事:

  • 将contentMode设置为 UIViewContentModeScaleAspectFit

  • multipleTouchEnabled = YES

  • userInteractionEnabled = YES

然而,它仍然不总能抓住捏合事件.

以下是我将手势分配给视图的方式,非常简单:

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

另外,我注意到scrollViewDidEndZooming我的委托调用了,但scale变量总是1.0.怎么可能?

scrollViewDidEndZooming总是被调用,而掐法(zoomPinch)并不总是叫.出现这种情况的原因是什么?我该如何解决?:)

Rap*_*sso 6

我相信你需要在你的实现中实现这个recognizer delegate:

pinchRecognizer.delegate = self;
Run Code Online (Sandbox Code Playgroud)

然后,在自我上课:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
     return YES;
}
Run Code Online (Sandbox Code Playgroud)

由于该类已经识别出pinch(用于缩放),因此您可能需要启用多个处理程序来进行缩放.