如何设置透明导航栏? iOS 11 swift 4 Xcode 9

时间:2018-01-31 13:31:00

标签: ios swift xcode ios11 swift4

右边的图片是我需要的,左边是我得到的:

1

我试图制作一个透明的导航栏,在我正在阅读它的书中,您需要做的就是在viewDidLoad()方法中插入此代码最好的视图控制器:

For i=1 To 10 
    arr(i,1) = i 
Next

但我得到的只是一个白色导航栏。 此外,如果写了图片上的条形差异在这段代码中:

navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.tintColor = .white

tableView.contentInsetAdjustmentBehavior = .never

但它对我不起作用

我下载了本书的最后一个项目的章节,一切都运行良好,虽然我已经尝试复制粘贴代码但仍然没有改变

事情是 - 我已经尝试插入此代码:

tableView.contentInsetAdjustmentBehavior = .never
  

但它不起作用

如果重要的话,这本书是"开始iOS 11编程"通过AppCoda

2 个答案:

答案 0 :(得分:5)

使用以下代码:

navigationController?.navigationBar.isTranslucent = true

希望它会对你有所帮助。

修改(更新)

使用以下代码:

navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = false

更新2

override func viewDidAppear(_ animated: Bool) {

        navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
        navigationController?.navigationBar.shadowImage = UIImage()
        navigationController?.navigationBar.isTranslucent = true
        navigationController?.navigationBar.tintColor = .red
    }

必须有效。

答案 1 :(得分:0)

检查此代码

  override func viewWillAppear(_ animated: Bool) {
        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
        self.navigationController?.navigationBar.shadowImage = UIImage()
        self.navigationController?.navigationBar.isTranslucent = true
    }
    override func viewWillDisappear(_ animated: Bool) {
        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
        self.navigationController?.navigationBar.shadowImage = UIImage()
        self.navigationController?.navigationBar.isTranslucent = false     
    }