iPhone:如何以编程方式将导航顶栏样式设置为“黑色导航栏”?

时间:2010-04-29 21:49:25

标签: iphone

我有一个只有TableView的导航项目。默认情况下,我可以在运行应用程序时看到导航栏。我想将导航栏样式更改为相同,如果我们在I.B中看到有一个名为“顶栏”的“黑色导航栏”样式(显示黑色导航顶栏,但会有某种灰色阴影)。我现在想要在我的导航栏中使用相同的内容,而不是任何其他颜色或样式。 我该如何解决?

注意: 我用过“self.navigationController.navigationBar.barStyle = UIBarStyleBlack;” ,但它显示完全黑色的导航栏。我不想那样,我想要一些黑色的灰色阴影,类似于“顶栏”,它有“黑色导航栏”。

  1. 我尝试了上面的一些色彩添加,比如“self.navigationController.navigationBar.tintColor = [UIColor grayColor];”但我在导航栏中观察到相同的黑色表演。

  2. 我试过“navigationBar.barStyle = UIBarStyleBlackTranslucent;”但它不适合并正确显示状态栏。相反,它重叠(隐藏)半黑色状态栏和外面的半黑色显示。

  3. 有人可以教我吗?

    谢谢。

8 个答案:

答案 0 :(得分:10)

由于UIBarStyleBlackTranslucent在iOS 3.0中已弃用,因此 最好使用这两行:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;  // optional
self.navigationController.navigationBar.translucent = YES;

这也允许您使用与黑色不同的颜色。

答案 1 :(得分:7)

navigationBar.barStyle = UIBarStyleBlackTranslucent;

docs

答案 2 :(得分:6)

完整答案......

self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

答案 3 :(得分:1)

MyView *myView=[[MyView alloc]initWithNibName:@"myView" bundle:[NSBundle mainBundle]];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:myView];
[nav.navigationBar setBarStyle:UIBarStyleBlackOpaque];

答案 4 :(得分:1)

斯威夫特3:

self.navigationController?.navigationBar.barStyle = UIBarStyle.blackTranslucent

答案 5 :(得分:0)

self.navigationController.navigationBar.tintColor = [UIColor blackColor];

答案 6 :(得分:0)

在故事板中,为Top Bar选择Translucent Black Navigation Bar enter image description here

答案 7 :(得分:0)

要将条形样式更改为黑色半透明documentation

navigationController?.navigationBar.barStyle = .black
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.tintColor = #colorLiteral(red: 1, green: 0.99997437, blue: 0.9999912977, alpha: 1)