[ iOS / Swift ] 使用 iOS 13 新增的 UINavigationBarAppearance 類別來設置 Navigation Bar 透明外觀

蘋果在 iOS 13 新增了 UINavigationBarAppearance 類別,讓我們大家在設置 Navigation Bar 的外觀更加的方便。

問題:

如何讓 (圖一) 畫面 push 到 (圖二) 畫面時, 讓 (圖二) 畫面的 Navigation Bar 變成透明。


實作:

1. 在 (圖二) 畫面要顯示時,產生 UINavigationBarAppearance 物件後,呼叫 configureWithTransparentBackground() 方法,將背景和陰影屬性重置為透明,然後在設為目前畫面 NavigationBar 的 standardAppearance。

2. 在 (圖二) 畫面要消失時,呼叫 configureWithDefaultBackground() 方法,將背景和陰影屬性重置為預設。

    

override func viewWillAppear(_ animated: Bool) {

    super.viewWillAppear(animated)

        

    let navigationBarAppearance = UINavigationBarAppearance()

    navigationBarAppearance.configureWithTransparentBackground()

    navigationController?.navigationBar.standardAppearance = navigationBarAppearance

}

    

override func viewWillDisappear(_ animated: Bool) {

    super.viewWillDisappear(animated)

        

    let navigationBarAppearance = UINavigationBarAppearance()

    navigationBarAppearance.configureWithDefaultBackground()

    navigationController?.navigationBar.standardAppearance = navigationBarAppearance

}

    


成果:


留言