簡體   English   中英

如何在swift4中清除導航欄顏色?

[英]How to remove navigation bar colour clear in swift4?

我想清除導航欄的顏色。 在我的 ViewController 中有一個背景圖像,當我刪除導航 barTintColor、navigationController.view.background 和導航背景圖像的顏色時,模擬器會顯示我:- 在此處輸入圖像描述

我一直在嘗試很多代碼,但沒有找到解決方案。 我想要這樣的導航欄:- 在此處輸入圖像描述

帶有清晰的導航欄顏色。 有什么解決辦法,告訴我? 謝謝!

您可以在導航欄上透明的viewWillAppear ,並移除透明度viewWillDisappear如下

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

背景圖像和后退按鈕將可見

在此處輸入圖片說明

最好您必須避開導航欄。 將導航欄隱藏在導航控制器中,並將用戶自定義視圖隱藏在視圖控制器中,以避免出現此問題。

Swift 5::<\/strong>在 AppDelegate 的 didFinishLaunchingWithOptions 函數中調用下面的方法可以解決問題(這將應用於您的所有導航欄,但不要忘記切換您的視圖控制器)

let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.configureWithTransparentBackground()
            
navigationController?.navigationBar.standardAppearance = navBarAppearance
navigationController?.navigationBar.scrollEdgeAppearance = navBarAppearance

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM