Mic*_*tiz 18 iphone objective-c uitabbar ios7
我有一个问题,当我在TabBar上设置半透明盒子时,有些东西阻挡了我的一些视图.
它看起来像是一种额外的标签栏,或者我甚至都不知道.我正在使用故事板.
请看附图:
半透明(OFF - NO):
使用半透明(ON或YES):
有人知道它为什么会这样吗?
谢谢
PS:你喜欢哪个tabBar?黑色还是这个:
nal*_*d88 75
设置tabBar.translucent
为iOS7时会发生这种情况NO
.iOS正试图变得聪明并说"嘿,tabbar不是半透明的,所以我们最好把所有东西都放在它上面".通过extendedLayoutIncludesOpaqueBars
在tabbar控制器内部的导航控制器内设置视图控制器的属性来修复它YES
.
示例(实际上没有运行):
UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.tabBar.barStyle = UIBarStyleBlack;
tabBarController.tabBar.translucent = NO;
UIViewController *viewController = [[UIViewController alloc] init];
viewController.extendedLayoutIncludesOpaqueBars = YES; // <-- This is important!!!!!!
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController: viewController];
tabBarController.viewControllers = @[navigationController];
Run Code Online (Sandbox Code Playgroud)
资料来源:https://web.archive.org/web/20160405135605/https : //developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html
顺便说一下,我最喜欢非半透明的tabbar.
编辑
正如Andy在下面提到的,这个标志不必在代码中设置.您可以在IB中设置它,如果这是您使用的.
Ali*_*our 10
如上所述,您必须将barTintColor设置为您想要更改颜色的内容.
当您为barStyle设置任何样式或为barTintColor设置任何自定义颜色时,这些设置会自动应用.如果您愿意,可以通过以编程方式将半透明属性设置为NO来使标签栏不透明.在这种情况下,如果标签栏具有UIBarStyleBlack样式,则条形使用黑色绘制不透明背景;如果标签栏具有UIBarStyleDefault,则条形图绘制白色;如果定义了自定义值,则使用标签栏的barTintColor绘制不透明背景.
我用于项目的东西
self.tabBarController.tabBar.barTintColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0];
self.tabBarController.tabBar.translucent = NO;
Run Code Online (Sandbox Code Playgroud)
我有带TableView的控制器和半透明的NavigationBar和半透明的TabBar.
在这种情况下,使用viewController.extendedLayoutIncludesOpaqueBars = YES;
会导致两个条形覆盖我的表视图的问题.
可以通过设置viewController.edgesForExtendedLayout = UIRectEdgeBottom;
TableView隐藏在Tab Bar后面的结果来管理它.
归档时间: |
|
查看次数: |
29917 次 |
最近记录: |