【问题标题】:How to make navigation top bar style to same like "Black Navigation Bar" programmatically?如何以编程方式使导航顶部栏样式与“黑色导航栏”相同?
【发布时间】:2010-04-29 21:49:25
【问题描述】:

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

注意:

  1. 我使用了“self.navigationController.navigationBar.barStyle = UIBarStyleBlack;”,但它以全黑显示导航栏。我不想要那个,我想要某种黑色的灰色阴影,类似于具有“黑色导航栏”的“顶部栏”。

  2. 我在上面尝试了一些色调,比如“self.navigationController.navigationBar.tintColor = [UIColor grayColor];”但我在导航栏中观察到同样的全黑显示。

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

有人可以教我吗?

【问题讨论】:

  • 对不起“UIBarStyleBlackTranslucent;”这不是我所期望的。我想要相同的颜色样式,打开 I.B,然后检查具有“黑色导航栏”的“顶部栏”。 (或)运行已设置“顶部栏”和“黑色导航栏”的应用程序,它将显示黑色和一些灰色阴影。
  • 我不完全确定你的意思,但这可能是因为不透明和透明的内部视图控制器布局不同(视图控制器通过透明的可见)
  • 好的。谢谢。我试过“navigationBar.barStyle = UIBarStyleBlackTranslucent;”但它不适合导航栏,并与那里的状态栏一起显示。相反,它与状态栏重叠(隐藏)一半黑色导航栏,另一半显示在顶部。
  • 我知道我最初隐藏了状态栏,然后当我的 TableView 控制器启动时我也有导航栏时再次显示。因此,我观察到上述半进半出的评论问题。现在,我只是一直保持状态栏打开,没有观察到导航栏和状态栏的重叠,但它设置了“UIBarStyleBlackTranslucent”,但输出仍然是纯黑色样式。
  • 听起来很奇怪。有机会放个截图吗?

标签: iphone


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:
    navigationBar.barStyle = UIBarStyleBlackTranslucent;
    

    (docs)

    【讨论】:

      【解决方案3】:

      完整答案...

      self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
      

      【讨论】:

        【解决方案4】:
        MyView *myView=[[MyView alloc]initWithNibName:@"myView" bundle:[NSBundle mainBundle]];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:myView];
        [nav.navigationBar setBarStyle:UIBarStyleBlackOpaque];
        

        【讨论】:

          【解决方案5】:

          斯威夫特 3:

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

          【讨论】:

            【解决方案6】:
            self.navigationController.navigationBar.tintColor = [UIColor blackColor];
            

            【讨论】:

              【解决方案7】:

              在情节提要中选择 Translucent Black Navigation Bar 作为顶部栏

              【讨论】:

                【解决方案8】:

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

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

                【讨论】:

                  猜你喜欢
                  • 2013-06-23
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-07-13
                  • 1970-01-01
                  相关资源
                  最近更新 更多