【问题标题】:ios7/8 transparent navigation barios7/8透明导航栏
【发布时间】:2014-12-09 10:09:23
【问题描述】:

我知道这已得到解答,但我有一些问题,我正在使用这个解决方案:link

唯一的变化是我在我的视图控制器中使用了这个,所以用navigationController!替换了self

我的问题:导航栏是黑色的,不透明。我错过了什么吗?

我在 xcode6.1 和部署目标 ios 7.1 中使用 swift

提前谢谢你!

编辑:(要求的代码)

override func viewDidLoad() {
    super.viewDidLoad()
    //Transparent navigation bar
    navigationController!.navigationBar.translucent = true
    navigationController!.navigationBar.shadowImage = UIImage()
    navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    /////
    //other stuff
}

【问题讨论】:

  • 显示您的代码,您将self 替换为navigationController! 的声明并没有清楚说明您使用的是self.navigationController!. 还是navigationController!.(前者是正确的)。
  • self.navigationController!. 等于 navigationController!.,我在 viewDidLoad() 中使用它
  • 这是正确的,并且假设应用程序在展开可选navigationController 时不会崩溃,您的视图控制器已经在导航控制器堆栈中,那么代码应该可以工作。在那里放置一个断点,以确保您确实在使用这个 VC 类并执行代码。
  • 是的,我试过了,我的应用程序不会崩溃并且代码会执行(如果我删除它,导航栏会变回 IB 中设置的默认白色半透明)
  • 您的行代码在新项目中按预期工作,您要么在某处重新设置参数,要么有一些不可预测的布局,您应该能够通过视图调试轻松检查后者(类似于VC 的view 位于导航栏下方,因此您可以通过导航栏查看底层视图或窗口背景)。如果你不熟悉视图调试,尝试为可疑组件设置不同的颜色,看看会发生什么(如UIApplication.sharedApplication().keyWindow?.backgroundColor = UIColor.redColor()

标签: xcode ios7 swift ios8


【解决方案1】:

问题是在视图控制器中,顶栏下的扩展被禁用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2013-09-24
    • 2020-09-19
    • 2018-03-05
    相关资源
    最近更新 更多