我有个问题,当我在标签栏上设置半透明框时,有东西挡住了我的一些视图。
它看起来像是一个额外的标签栏,或者我都不知道。我在用故事板。
请参阅所附图片:
半透明(关闭-否):
半透明(打开或是):
有人知道为什么会这样吗?
感谢
PS:你们喜欢哪个标签?黑色或这个:
最佳答案
当您将tabBar.translucent
设置为NO
时,在ios7中会发生这种情况。iOS试图变得聪明,并说“嘿,Tabar不是半透明的,所以我们最好把所有东西推到上面。”通过将视图控制器的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];
来源:https://web.archive.org/web/20160405135605/https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html
顺便说一句,我最喜欢半透明的标签栏。
编辑
正如安迪在下面提到的,这个标志不必在代码中设置。如果你用的是IB,你可以设置它。