Multiple Gestures for UIGestureRecognizers (iPhone, Cocos2d)(UIGestureRecognizers (iPhone, Cocos2d) 的多种手势)
问题描述
我正在使用 Cocos2d 来渲染精灵,并使用 UIGestureRecognizers 来允许用户平移、旋转和缩放精灵.
I'm using Cocos2d to render a sprite, and UIGestureRecognizers to allow the user to Pan, Rotate and Scale the sprite.
我让每个人都使用如下代码单独工作:
I've got each working in isolation using code like the following:
UIPinchGestureRecognizer *pinchRecognizer = [[[UIPinchGestureRecognizer alloc] initWithTarget:layer action:@selector(handlePinchFrom:)] autorelease];
[viewController.view addGestureRecognizer:pinchRecognizer];
UIRotationGestureRecognizer *rotationRecognizer = [[[UIRotationGestureRecognizer alloc] initWithTarget:layer action:@selector(handleRotationFrom:)] autorelease];
[viewController.view addGestureRecognizer:rotationRecognizer];
但是,如果用户在旋转时将手指捏在一起,我想同时缩放和旋转精灵(例如,照片应用程序会这样做).不幸的是,识别器似乎陷入了旋转"或捏合"模式,并且不会同时调用两个处理程序:(
However, I want to both scale and rotate the sprite if the user pinches their fingers together whilst rotating (the Photos app does this, for instance). Unfortunately though, the recognizer seems to get stuck in either "rotate" or "pinch" mode, and won't call both handlers at the same time :(
所以,基本上,我想知道 - 这是否意味着我不能使用 UIGestureRecognizers?我可以组合两个识别器并在一个处理程序中执行所有操作吗?我是否必须将 UIGestureRecognizer 子类化为类似于PinchAndRotateRecognizer"的东西.
So, basically, I want to know - does this mean I can't use UIGestureRecognizers? Can I combine two recognizers and do all of the actions in a single handler? Will I have to subclass UIGestureRecognizer to be something like "PinchAndRotateRecognizer".
帮助表示赞赏:)
推荐答案
只需实现gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 在您的委托中.
Just implement gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: in your delegate.
我设置了一个 UIPinchGestureRecognizer
、一个 UIPanGestureRecognizer
和一个 UIRotationGestureRecognizer
,我希望它们都能同时工作.我还有一个 UITapGestureRecognizer
我确实不希望同时被识别.我所做的只是:
I have a UIPinchGestureRecognizer
, a UIPanGestureRecognizer
and a UIRotationGestureRecognizer
set up and I want them all to work at the same time. I also have a UITapGestureRecognizer
which I do not want to be recognized simultaneously. All I did was this:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
if (![gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]] && ![otherGestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
return YES;
}
return NO;
}
这篇关于UIGestureRecognizers (iPhone, Cocos2d) 的多种手势的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:UIGestureRecognizers (iPhone, Cocos2d) 的多种手势
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01