- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何以编程方式隐藏 UITabBar?在 SO 上,这个问题已经被多次询问和回答,但答案似乎大致有两种:
1) 使用导航 Controller ,可以使用 hidesBottomBarWhenPushed 属性在推送之前隐藏下一个 vc 的选项卡栏。 Typical answer here .
2) 浏览选项卡栏 Controller 的 View 层次结构并修改选项卡栏的框架和/或可见性。 Typical answer here .
但在我看来,这两种答案都不够。 1)如果我们需要隐藏当前 View 上的选项卡栏,比如旋转到横向时,该怎么办? 2) 通过 Apple 库的私有(private) View 层次结构唤醒的半页代码是:繁琐,b.容易发生不可预见的破坏,c.可能是应用程序审批的拦截器。
那么应用程序可以做什么呢?答案是不允许吗?有苹果文档引用支持吗?这将是一个悲伤的答案。在我看来,旋转情况是隐藏选项卡栏的合理原因。
预先感谢您的帮助。
最佳答案
抱歉回复延迟,但我已经提取了代码,您可以看到我如何旋转设备以仅横向全屏显示“ map View ”。
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if(toInterfaceOrientation == UIInterfaceOrientationLandscapeRight || toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
[self hideTabBar:self.tabBarController];
[self.view bringSubviewToFront:self.eventsMapView];
self.eventsMapView.bounds = self.view.bounds;
self.eventsMapView.frame = CGRectMake(0, -208, self.view.frame.size.width, 300);
} else if(toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown || toInterfaceOrientation == UIInterfaceOrientationPortrait) {
[self showTabBar:self.tabBarController];
[self.view sendSubviewToBack:self.eventsMapView];
}
由于我们调用其中的方法来实际隐藏和显示选项卡栏,因此我们还需要在 .m 文件中定义这些方法:
#pragma mark - Tab Bar Methods -
-(void)hideTabBar:(UITabBarController *)tabbarcontroller {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
for(UIView *view in tabbarcontroller.view.subviews) {
if([view isKindOfClass:[UITabBar class]]) {
[view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
} else {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
}
}
[UIView commitAnimations];
}
-(void)showTabBar:(UITabBarController *)tabbarcontroller {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
for(UIView *view in tabbarcontroller.view.subviews) {
if([view isKindOfClass:[UITabBar class]]) {
[view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)];
} else {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)];
}
}
[UIView commitAnimations];
}
如果您已经在选项卡栏 Controller 中,那么您需要确保每个子级(或单个选项卡 ViewController)都返回 TRUE,如下所示。
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return TRUE;
希望这对您有所帮助 - 如果您有任何问题,请发表评论,我会更新我的答案以更好地展示。
关于iphone - 横向隐藏 UITabBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12181935/
我无法从一个页面移动到另一页面而不丢失 tabBarController 我使用 didSelectRow,我可以恢复数据以及更改页面,除了我的 View 的 tabBar 菜单不显示 overrid
我遇到了一些非常奇怪的事情。如果我的 UITTabBar isTranslucent 属性设置为 false,它会添加这个奇怪的双像(或 View ?我不知道是什么它确实位于 UITabBar 之上。
升级到iOS 13后,出现了几个标签栏相关的问题。我已经修复了大部分,但剩下的一个是无法覆盖标签栏的阴影图像。以下代码适用于 iOS 12 及更低版本: [[UITabBar appearance]
我有一个用 Swift 编写的 iOS 应用程序,其中包含 UITabBarController 和 5 个 UIViewControllers。现在,我有一堆 UIViewControllers,它
尝试将 UITabBar 项添加到现有选项卡栏时,是否还有其他人遇到此问题?当从对象库中拖出选项卡栏项目时,Xcode 只是卡住,然后崩溃。 最佳答案 我知道这已经有一个月了,但如果您还没有这样做,更
我正在尝试向 UITabBar 添加 subview ,它应该位于其他 UITabBar subview 之后。 我在 UITabBarController 的子类中添加了这样的 subview :
除了第一次切换到选项卡时,最初触发 ViewDidLoad 时,切换到(重新选择)该选项卡的所有后续操作似乎都不会触发 ViewDidLoad,也不会触发任何其他方法。 View 似乎被缓存并立即重新
我在其中使用了 Tabbar viewcontroller,我添加了 5 项并且我给出的图像昆虫是 (24,0,0,6)。xib中添加了所有按钮图片[在Bar项下-->image]请帮助。谢谢。 最佳
我搜索了很多,相信我,我遇到了很多问题和示例代码,但没有一个符合我的要求,这太疯狂了,怎么没有答案。 我的具体要求:-1. 我想要一个 UITabBar 而不是 UITabBarController2
第一个 View 中的标签栏是我想要的。因为第二个 View 不是 ScrollView ,所以我无法使用 self.edgesForExtendedLayout = UIRectEdge.Botto
我创建了一个 StoryBoard 项目并添加了一个 UITabBar以我的第一眼和一些UITabBar上面的项目。我正在使用 UITabBar而不是 UITabBarController因为 UIT
我有一个 tableViewController,一旦点击一个单元格,它就会带你到 FirstViewControllerFirstViewController 有一个包含 4 个项目的 UITabB
看来[[UITabBar appearance] setSelectedImageTintColor:[UIColor redColor]];在 iOS7 下不再正常工作。我可以设置背景图像,但选定的
我有一个 UITabBar使用 Interface Buider 进行设置,并且仅当我未设置全局应用程序色调颜色时,图像突出显示才能正常工作: 当我使用 [[UIView appearance] se
长期读者,第一次海报。请温柔点:P 我正在开发一个应用程序,并且有一个 UITabbar 元素的背景图像,它在顶部的几个像素是透明的。我进行了广泛的搜索,尝试了许多建议我可以找到的解决方案(将色调、背
我需要将 uitabbar 选择的色调颜色从蓝色更改为黄色。我该怎么做???谁能帮我解决这个问题吗? 最佳答案 这是一个很好的起点:how to change UITabbar selected co
我的应用程序中有 5 个选项卡,第一个选项卡是欢迎选项卡,当用户单击第一个选项卡时它会显示欢迎屏幕,但仅在第一个选项卡上我想隐藏选项卡栏我想隐藏第一个选项卡上的选项卡栏,因为它是一个受欢迎的 View
有人可以告诉我 iPhone 编程中 UITabBarController 中标签栏的确切大小是多少吗? 最佳答案 界面构建器表示其尺寸为 320x49,其中 49 为高度。 但是,您不应该依赖于硬编
我找不到任何向图标添加“通知”的引用,最好是添加到 UITabBar 中,如所附图片,编号 8。 我想我不必手动创建圆圈内的所有数字,或者每次需要时创建它并使用一些图标手动更新图像? 谢谢 r。 最佳
我有一个带有标签栏的简单应用程序,它根据用户输入禁用一个或多个栏项目。我知道我需要使用我尝试过使用的 UITabBarDelegate 。但是,当我调用委托(delegate)方法时,我收到未捕获的异
我是一名优秀的程序员,十分优秀!