2017-09-22 12 views
0

私のアプリケーションではナビゲーションバーを透明にしようとしていますので、バーの色合いの不透明度を0に変更しようとしました。しかし、これはバックグラウンドの色には全く影響しません。私ものviewDidLoadに次のコードを入れて、プログラム的な解決策を試してみたナビゲーションバーの色合いの不透明度によって色が変わることはありません

navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    navigationController?.navigationBar.shadowImage = UIImage() 
    navigationController?.navigationBar.isTranslucent = true 
    navigationController?.view.backgroundColor = .clear 

をしかし、私は仕事に何を得ませんしました。ナビゲーションバーを完全に透明にする方法はありますか(ただし、バーのボタンは透明ではないようにしてください)

答えて

0

隠す必要のあるビューを見つける必要があります。ビューとその名前のリストを表示するには、[デバッグビュー階層]ボタンをクリックします。

ここで私の作品の関数です:

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    transparentBackgrounds(navigationController?.navigationBar) 
} 
func transparentBackgrounds(_ view: UIView?) { 
    guard let view = view else { return } 

    let className = String(describing: type(of: view)) 
    print(className) 
    if ["_UIBarBackground","UIImageView","UIVisualEffectView"].contains(className) { 
     view.isHidden = true 
    } 

    view.backgroundColor = UIColor.clear 
    for v in view.subviews { 
     transparentBackgrounds(v) 
    } 
} 
1
self.navigationController?.navigationBar .setBackgroundImage(UIImage(), for: UIBarMetrics.default) 
    self.navigationController?.navigationBar.shadowImage = UIImage() 
    self.navigationController?.navigationBar.isTranslucent = true 
    self.navigationController?.view.backgroundColor = .clear 
    self.navigationController?.navigationBar.backgroundColor = .clear 
    self.navigationController?.navigationBar.tintColor = UIColor.white 
+0

最後の行(tintColor)ナビゲーションアイテムの色については、 –

関連する問題