UINavigationController NavigationBar不应用透明图像

时间:2019-04-09 01:20:31

标签: swift xcode

在导航选项卡栏中应用透明图像时。它变成白色而不是透明的。

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

3 个答案:

答案 0 :(得分:0)

确保某些内容在导航栏下方,以使它不会只是透明地显示白色背景。您将需要将uiviews拖到它下面,然后添加布局约束。否则,请确保您未更改其他地方导航栏的颜色。

答案 1 :(得分:0)

使用此扩展名可以使导航栏更加透明。

extension UINavigationController {
    func transparant() {
        self.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
        self.navigationBar.shadowImage = UIImage()
        self.navigationBar.isTranslucent = true
        self.view.backgroundColor = UIColor.clear
    }
}

答案 2 :(得分:0)

如果您使用的是Navigation Controller,请尝试以下操作:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
title = "Some Title"

如果您使用的是UINavigationBar,请尝试以下操作:

@IBOutlet var navBarOutlet: UINavigationBar!

    override func viewDidLoad() {
        super.viewDidLoad()

        // navigatin bar transparent
        navBarOutlet.setBackgroundImage(UIImage(),for:.default)
        navBarOutlet.shadowImage=UIImage()
        navBarOutlet.topItem?.title = "Some Title"

}