当我更新应用程序以使UINavigationBar
实例显示大标题时遇到了问题。问题是,在我的应用程序的某些屏幕中,我不希望UINavigationBar
要么 要么shadow
,backgroundColor
所以我有一种方法可以将它的外观从“固态”状态更改为“透明”状态,然后倒退。这是代码:
public static func setNavAppearance(type: AppearanceType, navigationBar: UINavigationBar?) {
if (type == .transparent) {
navigationBar?.setBackgroundImage(UIImage.init(), for: .default)
navigationBar?.shadowImage = UIImage.init()
navigationBar?.isTranslucent = true
}
else {
navigationBar?.shadowImage = nil
navigationBar?.setBackgroundImage(nil, for: UIBarMetrics.default)
navigationBar?.isTranslucent = false
}
}
如您所见,此方法所做的只是更改translucent
属性并设置/取消设置shadowImage
and backgroundImage
。这在不使用大标题的情况下工作得很好,我附上了设置透明外观的图像:
UINavigationBar 没有背景图片和阴影,但显示 UIBarButtonItems 和 backButton
对于大标题,这仍然可以正常工作;将外观类型设置回“实心”后出现问题。我再附上两张显示问题的图片:
所以问题是,该背景仅在navigationBar
不显示大标题时显示。我不知道我是否必须更改其他属性,否则这不适用于大型标题。任何帮助将不胜感激,在此先感谢。