如何将透明的“大标题”UINavigationBar 重置为默认外观设置?
Posted
技术标签:
【中文标题】如何将透明的“大标题”UINavigationBar 重置为默认外观设置?【英文标题】:How to reset a transparent 'large title' UINavigationBar to default appearance settings? 【发布时间】:2019-03-25 21:22:21 【问题描述】:我正在尝试研究如何将透明的“大标题”导航栏重置为默认外观设置。
我使用下面的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 一起使用...
【问题讨论】:
【参考方案1】:你可以试试这个功能在大标题模式下重置:
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]
【讨论】:
感谢您的建议,但即使在 viewWillAppear() 中调用 reset() 后,导航栏似乎仍然是透明的 不是绿色的吗? 不,它仍然是透明的......我想知道这是否是“大标题”的错误,因为它们无法重置?以上是关于如何将透明的“大标题”UINavigationBar 重置为默认外观设置?的主要内容,如果未能解决你的问题,请参考以下文章