滚动视图平移可以防止捏合手势?

时间:2011-05-18 00:57:27

标签: iphone opengl-es uiscrollview uigesturerecognizer

我正在创建一个用于游戏项目的图像平铺库,以适应我们现有的框架。我目前正在使用一个UIScrollView(带有一个空视图),允许我劫持漂亮的物理效果,用于反弹,但我必须使用捏手势识别器实现我自己的缩放(原因我不会进入)

但事情就是这样 - 当我用一根手指平移时,添加第二个触摸并尝试缩放什么都不做。在它允许我缩放之前我需要绝对静止。当用户在图像周围平移时,除非平底锅完全完成,否则我的捏手势识别器不会触发。

有没有人知道解决这个问题的方法,这也不涉及废弃UIScrollView并实现我自己的平底锅?

这是我的scrollViewDidScroll函数:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    viewingBounds.origin.x = scrollView.contentOffset.x;
    // Transform the y from UIKit coordinates into OpenGL coordinates
    viewingBounds.origin.y = world.height - viewingBounds.size.height - scrollView.contentOffset.y;
    [parentScene update]; // Render the image
}

我的手势识别器直接添加到init中的滚动视图:

[scrollView addGestureRecognizer:[[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(didReceivePinch:)] autorelease]];

3 个答案:

答案 0 :(得分:1)

您需要设置GestureRecognizer对象的委托,并在委托中实现此方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;

让它返回YES。

答案 1 :(得分:0)

您是否尝试过Apple的ZoomingPDFViewerPhotoScroller中的任何内容?在Photo Scroller中,图像是平铺的,并且您可以放大图片。希望您能从中获得一些东西。如果您在解压缩文件时遇到问题,请尝试从Xcode下载。

我想我也发现其他一些人正在做一些事情:

https://stackoverflow.com/questions/5383757/scaling-panning-a-uiimageview-using-pinch-and-swipe-gestures-free-code

http://answers.unity3d.com/questions/22500/how-to-zoom-and-pan-when-you-pinchswipe-across-scr.html

http://technology.blurst.com/iphone-multi-touch/

希望它有所帮助。

答案 2 :(得分:0)

嘿,亚当,我不知道你有没有重写任何东西,但我有一些替代方案hereherehere,更糟糕的情况是问某人同样的问题{ {3}}。希望有所帮助。