Transparent UINavigationBar in Swift

后端 未结 6 975
感动是毒
感动是毒 2020-12-13 06:43

I am trying to make my UINavigationBar in UINavigationController transparent. I created a subclass of UINavigationController and liked

6条回答
  •  旧巷少年郎
    2020-12-13 07:17

    Create an extension of UINavigationController and present or hide transparent navigation bar.

    extension UINavigationController {
    
        public func presentTransparentNavigationBar() {
            navigationBar.setBackgroundImage(UIImage(), for:UIBarMetrics.default)
            navigationBar.isTranslucent = true
            navigationBar.shadowImage = UIImage()
            setNavigationBarHidden(false, animated:true)
        }
    
        public func hideTransparentNavigationBar() {
            setNavigationBarHidden(true, animated:false)
            navigationBar.setBackgroundImage(UINavigationBar.appearance().backgroundImage(for: UIBarMetrics.default), for:UIBarMetrics.default)
            navigationBar.isTranslucent = UINavigationBar.appearance().isTranslucent
            navigationBar.shadowImage = UINavigationBar.appearance().shadowImage
        }
    }
    

提交回复
热议问题