有一种方法可以撤消requireGestureRecognizerToFail。

我像这样在requireGestureRecognizerToFail设置了两个UIGestureRecognizers之间的依赖关系。

UITapGestureRecognizer* tgr1 = [UITapGestureRecognizer alloc] initWithTarget ...];
UITapGestureRecognizer* tgr2 = [UITapGestureRecognizer alloc] initWithTarget ...];
[tgr1 requireGestureRecognizerToFail: tgr2];
...
// later in the code
[tgr2 release];

如何在tgr1上注销tgr2?
tgr2实际发布了还是tgr1现在有引用了?
如果没有,释放tgr2是否会引起问题?

谢谢

最佳答案

你的问题:

如何在tgr1上注销tgr2?

您有很多选择。

  • 您可以将其从 View 中删除。
  • 您可以禁用tgr2。
  • 要保持两个识别,您将需要创建一个新的识别器,使其相等并失败,然后将其添加,我不知道如何仅消除它们之间的依赖关系,也不知道是否有办法。

  • tgr2实际发布了吗?或者tgr1现在有引用了吗?

    当您将tgr2添加到tgr1 requireGestureRecognizerToFail中时,tgr2的保留计数不会增加。

    如果不是,发布tgr2是否会引起问题?

    不,不会有任何问题,只是tgr2总是会失败,并且会调用tgr1

    08-15 20:38