撤消[UIGestureRecognizer*requireGestureRecognizerToFail]

bbr*_*ame 7 cocoa-touch memory-management objective-c uigesturerecognizer ios

有没有办法撤消requireGestureRecognizerToFail.

我使用requireGestureRecognizerToFail设置了两个UIGestureRecognizer之间的依赖关系.

UITapGestureRecognizer* tgr1 = [UITapGestureRecognizer alloc] initWithTarget ...];
UITapGestureRecognizer* tgr2 = [UITapGestureRecognizer alloc] initWithTarget ...];
[tgr1 requireGestureRecognizerToFail: tgr2];
... 
// later in the code
[tgr2 release];
Run Code Online (Sandbox Code Playgroud)

如何使用tgr1取消注册tgr2?tgr2实际上是释放还是tgr1现在有参考?如果没有,释放tgr2会导致问题吗?

谢谢

ggr*_*ana 3

你的问题:

如何取消 tgr2 与 tgr1 的注册?

你有很多选择。

  1. 您可以将其从视图中删除。
  2. 您可以禁用 tgr2。
  3. 为了保持这两个识别器,您将需要创建一个新的识别器,该识别器需要失败并添加它,我不知道如何仅消除它们之间的依赖关系,也不知道是否有办法。

tgr2 是否实际发布,或者 tgr1 现在有参考吗?

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

如果没有,释放 tgr2 会导致问题吗?

不会,不会造成问题,只是 tgr2 总是会失败并且会调用 tgr1