我有个问题,当我在标签栏上设置半透明框时,有东西挡住了我的一些视图。
它看起来像是一个额外的标签栏,或者我都不知道。我在用故事板。
请参阅所附图片:
半透明(关闭-否):
半透明(打开或是):
有人知道为什么会这样吗?
感谢
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,你可以设置它。

10-08 15:43