我有一个UIViewController,它使用UIScrollView,在Scrollview中它有一个UIImageView。
我想识别相应的捏合和缩放。我不需要缩放,我只需要显示不同的图像。
看起来很像这个问题:UIView UIPinchGestureRecognizer problem
我尝试了几件事:
将contentMode设置为UIViewContentModeScaleAspectFit
设置multipleTouchEnabled = YES
设置userInteractionEnabled = YES
然而,它仍然不总能抓住捏合事件。
以下是我如何将手势分配给视图,非常简单:
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(zoomPinch:)];
[MediaScroller addGestureRecognizer:pinchRecognizer];
[pinchRecognizer release];
另外,我注意到scrollViewDidEndZooming
被调用了我的委托,但是scale变量总是1.0。怎么会这样?
始终调用scrollViewDidEndZooming
,而不总是调用捏合方法(zoomPinch)。出现这种情况的原因是什么?我该如何解决? :)
答案 0 :(得分:6)
我认为您需要在recognizer delegate
:
pinchRecognizer.delegate = self;
然后,自我上课:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
由于该类已经识别出pinch(用于缩放),因此您可能需要启用多个处理程序来进行缩放。