如何在iOS 7上获得不透明的UINavigationBar

时间:2013-10-04 02:28:00

标签: objective-c ios7 uinavigationbar transparency

有没有办法让iOS 7的目标UINavigationBar成为一种没有半透明效果的纯色?我尝试过设置backgroundColor,barTintColor,不透明,透明/半透明等等......没有任何效果。

任何人都知道怎么做?

以下是我一直在使用的一些代码块。请注意我在navigationBar上设置的属性。他们都没有,无论以任何顺序或组合起作用。

@property (strong, nonatomic) UITabBarController *tabBarController;

testViewController = [[TestViewController alloc] init];
anotherViewController = [[AnotherViewController alloc] init];
navigationController = [[UINavigationController alloc]
                            initWithRootViewController:testViewController];

navigationController.navigationBar.barTintColor = [UIColor darkGrayColor;
navigationController.navigationBar.barStyle = UIBarStyleBlack;
navigationController.navigationBar.translucent = YES;
navigationController.navigationBar.opaque = YES;

NSArray *tabBarViewControllers = [NSArray arrayWithObjects:
                                      navigationController,
                                      anotherViewController, nil];
self.tabBarController.viewControllers = tabBarViewControllers;

4 个答案:

答案 0 :(得分:56)

您的代码列出了navigationController.navigationBar.translucent = YES;

将其设为NO。

答案 1 :(得分:9)

要使其完全不透明,您只需从属性部分本身更改导航栏的样式即可!

Just set the style as Black!

这就是你把它变成黑色时的样子

答案 2 :(得分:7)

要使所有导航栏不透明,您只需将UINavigationBar.appearance().translucent = false添加到application:didFinishLaunchingWithOptions:

答案 3 :(得分:2)

self.navigationController.navigationBar.isTranslucent = false