iphone - UIGestureRecognizer完成后执行

标签 iphone objective-c uigesturerecognizer

我有 2 个 GestureRecognizer,当同时触发时需要触发动画。

我有 2 个 bool 值,每个 bool 值 1 个,当手势被识别时,它们被设置为 yes。

我的问题是我需要能够检查一个识别器以查看另一个识别器是否已被触发。

我目前正在执行以下操作

[self registerRecognizer:swipeRecognizerRight 
       onRecognizedBlock:^(UIGestureRecognizer *recognizer) {
    NSLog(@"pulled to right");
    leftPulled = TRUE;

    if (rightPulled) {
        [self->delegate executeActionString:someAnimation];       
    }

    leftPulled = FALSE;
}];

右侧的识别器也是如此。

leftPulled 和 rightPulled 是实际对象,一个在左边,一个在右边。

我的问题是,一个识别器在另一个识别器之前执行,因此永远不会出现两者都被识别并触发动画的情况。

如何解决这个问题?某种计时器,或者有没有办法对识别器进行编码,以便可以同时识别两者,然后触发动画?

最佳答案

我想你会在 UIGestureRecognizerDelegate 协议(protocol)方法中找到你的方式:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)g1
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)g2;

在您的情况下,此方法在两种情况下都应返回 YES ( ...:g1 ...:g2...:g2 .. .:g1 ),让两个手势同时被识别,以 g1g2 开头。

关于iphone - UIGestureRecognizer完成后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751513/

相关文章:

objective-c - 使用 MKTileOverlay 和 MKTileOverlayRenderer

ios - 拖动 UIView 结束时会丢失手势

ios - 仅当滚动内容到达边缘时才识别 UIScrollView 中的滑动手势

iphone - cocos2d ccArray 删除对象很慢

iphone - MapQuest ios API无法请求路线

iphone - 在 NSDocumentDirectory 和 UIScrollView 中删除

ios - 如何检测图像是灰度

iphone - 如何在UIStepper上实现KVO

iphone - iOS 5 之前的定位服务和设置

iphone - UIGestureRecognizers vs touchesBegan/touchesMoved/touchesEnded(准确性)