禁用同时 rightBarButton / tapGestureRecognizer 触摸

Posted

技术标签:

【中文标题】禁用同时 rightBarButton / tapGestureRecognizer 触摸【英文标题】:Disabling simultaneous rightBarButton / tapGestureRecognizer touch 【发布时间】:2013-05-18 17:48:49 【问题描述】:

我有一个viewController,当用户点击屏幕时,它的navigationBarstatusBar 会消失/重新出现(很像照片应用程序)。我注意到,当我在navigationBar 上按下rightBarButton“完成”并同时点击屏幕时,它会在viewController 转换时使条形消失(因此不会在被推送的viewController 上显示任何条形) .

我尝试在UITapGestureRecognizer 被触发时禁用rightBarButton,并尝试在rightBarButton 被推送时禁用UITapGestureRecognizer,但这并没有什么不同,这只发生在他们同时推送。

有没有人知道可以防止这种情况发生的解决方案?

【问题讨论】:

或许可以确保导航栏在 viewWillDisappear: 中可见。 或者在带有手势识别器的视图或按钮上设置 ExclusiveTouch :) 【参考方案1】:

我认为最简单的方法是将setExclusiveTouch: 转到导航栏视图(因此转到rightBarButton)。 所以在你viewDidLoad:

for (UIView *v in self.navigationController.navigationBar.subviews) 
    [v setExclusiveTouch:YES];

【讨论】:

我不认为独家触摸会起作用,因为它似乎同时发生 是的,我进行了测试,实际上触发错误似乎有点困难,但最终当我尝试足够多时,我仍然能够触发它。不过还是谢谢。

以上是关于禁用同时 rightBarButton / tapGestureRecognizer 触摸的主要内容,如果未能解决你的问题,请参考以下文章

PageView:禁用默认滚动并将其替换为 Tap 事件

从Swift中的另一个ViewController访问rightBarButton函数

html 笔记:移动端触摸事件 - 点击延迟的证明和“点穿”点穿 - 1.禁用页面Double Tap to Zoom的meta标签

尝试在 Swift 中以编程方式设置 rightBarButton

DELPHI FMX 同时使用LONGTAP和TAP

如何让uitableViewCell同时处理tap和long Press?