禁用隐藏导航栏的触摸

Posted

技术标签:

【中文标题】禁用隐藏导航栏的触摸【英文标题】:Disable the touch of a hidden navigation bar 【发布时间】:2013-09-05 08:40:20 【问题描述】:

我有一个导航栏和我的视图。

我设置了我的视图框架:

[myView setFrame: CGRectMake (0, -44, W, H)];

所以,我的视图位于导航栏下方(此导航栏是半透明的)。

一切正常。

在某些情况下,我必须隐藏导航栏并在我的视图上应用手势(点击)。

self.navigationcontroller.navigationbar.hidden = YES;

当导航栏被隐藏时,我似乎无法在导航栏区域中截获对我的视图的触摸(尽管这是隐藏的并且看不到)。

我怎样才能避免这种情况?

【问题讨论】:

你试过[self.navigationcontroller.navigationbar setUserInteractionEnabled:NO]吗?不要忘记在它可见时重新启用它。 你试过了吗? self.navigationController.navigationBar.userInteractionEnabled = NO; 我试过了,还是不行.. 对我来说 - self.navigationController?.navigationBar.isUserInteractionEnabled = false in viewDidLoad 正在工作 【参考方案1】:

在导航控制器中,顶部有一个Navigation View,用于放置 ViewController 的视图。 通过将 ViewController 视图的 Y 轴移动导航栏的高度,您无法移动底层导航视图。

这不是实现它的方法。导航控制器没有引用 NavigationView 的属性,因此我们无法移动它。

在我看来,你唯一能做的就是创建一个自定义 NavigationViewController,这很困难,但肯定不是不可能。

【讨论】:

以上是关于禁用隐藏导航栏的触摸的主要内容,如果未能解决你的问题,请参考以下文章

vue中导航栏的显示和隐藏

iOS侧滑返回到隐藏导航栏的VC,导航栏会闪现一次

滚动上带有隐藏导航栏的页面菜单

Android - 为带有导航抽屉和应用栏的应用完全隐藏状态和导航栏

触摸时禁用其他栏按钮项:导航栏

禁用导航栏的动画