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


右边的

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

1

我正在

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

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

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

tableView.contentInsetAdjustmentBehavior = .never

但它对我不起作用

下载了本书章节的最终项目,那里一切正常,尽管我尝试复制粘贴代码但仍然没有任何变化

问题是 - 我已经尝试插入此代码:

navigationController?.navigationBar.isTranslucent = true

但它不起作用

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

使用以下

代码:

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
    }

它必须是工作。

检查此代码

  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     
    }

最新更新