QMUI_iOS icon indicating copy to clipboard operation
QMUI_iOS copied to clipboard

QMUITheme 主题切换时会覆盖当前界面的自定义样式

Open jiasongs opened this issue 5 years ago • 3 comments

Bug 表现控制器里实现QMUINavigationControllerAppearanceDelegate中定义的方法,方法内实现qmui_imageWithThemeProvider,主题切换时没有调用此block。

截图 图片

如何重现 1.实现QMUINavigationControllerAppearanceDelegate的方法- (UIImage *)navigationBarBackgroundImage 2.进行主题切换 附:在Demo中的QMUIScrollAnimator示例中,主题切换也有点问题,Dark模式下,导航栏标题是黑色

预期的表现 正常情况下应该需要调用一次qmui_imageWithThemeProvider,或者调用一次-(UIImage *)navigationBarBackgroundImage

其他信息

  • 设备: 模拟器 - iPhone 11 Pro
  • iOS 版本: iOS 13.0
  • Xcode 版本: Xcode 11.0
  • QMUI 版本: 4.0.3

jiasongs avatar Dec 02 '19 02:12 jiasongs

目前的解决方案,在控制器里实现如下方法,手动更新当前导航栏的样式

图片

jiasongs avatar Dec 02 '19 03:12 jiasongs

找到原因了,在Dark的配置表中有一行代码 QMUICMI.navBarBackgroundImage = nil; 此代码将所有导航栏的背景置为nil,此方法-(UIImage *)navigationBarBackgroundImage返回的动态image也就不存在了

jiasongs avatar Dec 02 '19 03:12 jiasongs

找到原因了,在Dark的配置表中有一行代码 QMUICMI.navBarBackgroundImage = nil; 此代码将所有导航栏的背景置为nil,此方法-(UIImage *)navigationBarBackgroundImage返回的动态image也就不存在了

主要的问题在于 QMUITheme 控件在主题发生变化时,一定都是以全局样式为准,于是会覆盖 vc 里自定义的样式,这个问题还在思考如何解决好一点,目前也确实只能用你说的方式,vc 自己再更新一次。

MoLice avatar Dec 02 '19 07:12 MoLice