てくてくテック

気ままに開発のメモを書いていこうと思います。主にSwiftかと。

NavigationbarをHiddenじゃなくて透明にする

はじめに

NavigationbarをHiddenにして消すのではなく、タイトルやボタンは表示するがNavigationbarはあくまで透明としたい時があります(下図参照)。単純にBar TintをclearColorに変更するとなぜか黒くなります。今回は、下図のようにNavigationbarを透明にする方法について書きます。

https://gyazo.com/df36cbd4bb0c7186599a0fe51500e495

コード

透明にする時

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

戻す時

self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
self.navigationController?.navigationBar.shadowImage = nil

UIViewControllerのExtensionに入れておくといいかもですね。