无法单击隐藏的TabBar下的“下方”

问题描述 投票:1回答:4

我这样隐藏我的标签栏:

self.tabBarController.tabBar.hidden = YES;

而且因为现在有一个黑色的酒吧曾经站在那里我伸展了一个顶部的UIWebView(或者它在下面?)那个空的空间。 UIWebViewUIViewController。我这样做的约束默认情况下是这样的:

enter image description here

约束的代码:

if(self.tabBarController.tabBar.hidden){
    self.webviewBottomConstrain.constant = -self.tabBarController.tabBar.frame.size.height;
}else{
    self.webviewBottomConstrain.constant = 0;
}

但是,如果我在TabBar所在的位置点击设备,它将无法执行。就好像那里有一些看不见的东西与标签栏的大小。我也试过隐藏它的方式this thread sugests。结果仍然相同。

更新:似乎当您点击隐形标签栏时,标签栏会识别点击,而不是标签栏下可见的视图

ios hide uitabbar
4个回答
4
投票

self.extendedLayoutIncludesOpaqueBars = YES;这将解决你的问题


0
投票

您通过将其隐藏属性设置为NO来隐藏您的tabBar?尝试将其设置为YES。除非我误解了你要做的事情,否则你的标签栏似乎没有隐藏在那个代码中。

我要检查的另一件事是查看是否为Web视图选中了User Interaction Enabled。如果不是,那么看起来似乎有一些看不见的东西阻止你与你的观点互动。


0
投票

好吧,我使用相当丑陋的黑客来解决这个问题。我现在以另一种方式隐藏标签栏:

if (shouldShow) {
    self.hidesBottomBarWhenPushed = NO;
    UIViewController *someView = [[UIViewController alloc] init];
    [self.navigationController pushViewController:someView animated:NO];
    [self.navigationController popToViewController:self animated:NO];

} else if (shouldHide) {
    self.hidesBottomBarWhenPushed = YES;
    self.tabBarController.hidesBottomBarWhenPushed = YES;
    self.navigationController.hidesBottomBarWhenPushed = YES;
    UIViewController *someView = [[UIViewController alloc] init];
    [self.navigationController pushViewController:someView animated:NO];
    [self.navigationController popToViewController:self animated:NO];
}

我确实需要随机视图,因为我无法推动视图。


0
投票

通过将标签栏移到屏幕底部隐藏标签栏时,我遇到了同样的问题。我的自定义UITabBarViewController拦截了标签栏腾出的区域中的触摸事件,因此我没有更改标签栏的框架以将标签栏移到屏幕外,而是扩展了标签栏视图控制器的高度,使标签栏仍然移动到屏幕外,但是标签栏上方的子视图现在填充了该空间。这允许子视图接收触摸。

© www.soinside.com 2019 - 2024. All rights reserved.