UIGestureRecognizer检测顺序

5

好的,我有一个名为 viewA 的视图,其中包含名为 viewB 的子视图,它们都分别被分配了手势识别器。现在我正在使用

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

来同时调用它们。现在假设当 gestureRecognizer 激活时,它调用了

NSLog(@"This is...");

如果触发了otherGestureRecognizer,它会调用以下内容:

NSLog(@"Sparta!");

问题在于如果两个手势识别器同时被触发,它们被调用的顺序是不确定的,因此有时会出现混乱。
NSLog(@"Sparta!");

有时候会先调用gets,有时候则相反。有没有办法确保

NSLog(@"This is...");

always always被首先调用?

2个回答

0

你能否详细解释一下你想要实现什么目标吗?

你想让你的子视图成为第一响应者,但是在此之后又让父视图做出响应?这样你就可以以固定的顺序获得两种响应了?

如果是这样的话,你可以在两个视图上创建一个手势识别器。检查第一次响应(我想应该是你的子视图),然后制定一个委托协议,让它的父视图也作出响应。

无论如何,你提供更多解释将有助于确切地理解你的问题。


-1

我最终将应该首先调用的UIGestureRecognizer的最小按压持续时间降低了一毫秒,就解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接