我有 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
),让两个手势同时被识别,以 g1
或 g2
开头。
关于iphone - UIGestureRecognizer完成后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751513/