我有一个 UIViewController,它使用 UIScrollView,并且在该 Scrollview 中它有一个 UIImageView。
我想识别捏合并相应地缩放。我不需要缩放,我只需要显示不同的图像。
它看起来很像这个问题:UIView UIPinchGestureRecognizer problem
我尝试了几件事:
UIViewContentModeScaleAspectFit
multipleTouchEnabled = YES
userInteractionEnabled = YES
然而,它仍然不能总是捕捉到捏合事件。
这是我将手势分配给 View 的方式,非常简单:
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(zoomPinch:)];
[MediaScroller addGestureRecognizer:pinchRecognizer];
[pinchRecognizer release];
另外,我确实注意到
scrollViewDidEndZooming
被我的委托(delegate)调用,但比例变量始终为 1.0。怎么可能?scrollViewDidEndZooming
总是被调用,而 pinch 方法 (zoomPinch) 并不总是被调用。为什么会发生这种情况?我该如何解决? :)
最佳答案
我相信你需要在你的 recognizer delegate
中实现这个。 :
pinchRecognizer.delegate = self;
然后,在自我课上:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
由于该类已经识别出捏合(用于缩放),因此您可能需要启用多个处理程序来进行捏合。
关于objective-c - 为什么不调用 UIPinchGestureRecognizer 而 scrollViewDidEndZooming 是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6747427/