gpt4 book ai didi

Iphone:是否可以隐藏 TabBar? (iOS 8 之前)

转载 作者:IT王子 更新时间:2023-10-29 07:44:10 24 4
gpt4 key购买 nike

我有一个应用程序使用 UITabBarController 在模式之间切换。在某种模式下,我想隐藏标签栏,直到完成该模式的步骤。请注意,我没有使用导航 Controller ,因此无法使用导航 Controller 上的 setHidesBottomBarWhenPushed 方法来隐藏标签栏。

在 iOS 8 之前,当我尝试使用以下方法隐藏 tarbar 时:

self.tabBarController.tabBar.hidden = YES

标签栏消失了,但它在屏幕底部的标签栏原来所在的位置留下了 50 像素的空白区域。我似乎无法弄清楚如何填充该区域。 UI 中该区域中的任何内容都被裁剪掉了,无法看到。

如果这可能的话,有什么想法吗?我真的很想远离导航 Controller 。

最佳答案

这是我的代码:

当然,这与 Controller View 层次结构中的进展有关。它可能会改变/中断。这使用定义的 API,因此 Apple 不会关心,但他们也不会关心破坏您的代码。

- (void)hideTabBar {
UITabBar *tabBar = self.tabBarController.tabBar;
UIView *parent = tabBar.superview; // UILayoutContainerView
UIView *content = [parent.subviews objectAtIndex:0]; // UITransitionView
UIView *window = parent.superview;

[UIView animateWithDuration:0.5
animations:^{
CGRect tabFrame = tabBar.frame;
tabFrame.origin.y = CGRectGetMaxY(window.bounds);
tabBar.frame = tabFrame;
content.frame = window.bounds;
}];

// 1
}

- (void)showTabBar {
UITabBar *tabBar = self.tabBarController.tabBar;
UIView *parent = tabBar.superview; // UILayoutContainerView
UIView *content = [parent.subviews objectAtIndex:0]; // UITransitionView
UIView *window = parent.superview;

[UIView animateWithDuration:0.5
animations:^{
CGRect tabFrame = tabBar.frame;
tabFrame.origin.y = CGRectGetMaxY(window.bounds) - CGRectGetHeight(tabBar.frame);
tabBar.frame = tabFrame;

CGRect contentFrame = content.frame;
contentFrame.size.height -= tabFrame.size.height;
}];

// 2
}

编辑:一位匿名用户建议为 7.0 添加以下内容(我没有测试过,也不能说这是一种解决方法还是理想的实现):

// 1. To Hide the black line in IOS7 only, this extra bit is required
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
[self.tabBarController.tabBar setTranslucent:YES];
}

// 2. For IOS 7 only
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
[self.tabBarController.tabBar setTranslucent:NO];
}

编辑:在 8.x 中完全未经测试,可能缺少某些布局。

关于Iphone:是否可以隐藏 TabBar? (iOS 8 之前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1982172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com