我正在尝试找出如何将透明的“大标题”导航栏重置为默认外观设置。
我使用以下setTransparent()
函数来配置我的透明导航栏。
reset()
函数可以成功重置默认大小的导航栏,但无法重置“大标题”导航栏。
extension UINavigationBar {
func setTransparent() {
// set large titles
self.prefersLargeTitles = true
// set colour of nav items
self.tintColor = .white
// set background colour
self.barTintColor = .green
// make transparent
self.setBackgroundImage(UIImage(), for: .default)
self.shadowImage = UIImage()
self.isTranslucent = true
}
func reset() {
self.setBackgroundImage(nil, for: .default)
self.shadowImage = nil
self.isTranslucent = false
}
}
我认为这与“大标题”不兼容backgroundImage / shadowImage有关。
答案 0 :(得分:0)
您可以尝试在大标题模式下重置此功能:
func setTransparent() {
// set large titles
self.prefersLargeTitles = false
// set colour of nav items
self.tintColor = .white
// set background colour
self.barTintColor = .green
self.backgroundColor = nil
// make transparent
self.setBackgroundImage(UIImage(), for: .default)
self.shadowImage = UIImage()
self.isTranslucent = true
}
func reset() {
self.setBackgroundImage(nil, for: .default)
self.shadowImage = nil
self.backgroundColor = UIColor.green
self.isTranslucent = false
self.largeTitleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.green]
}