Tencent / QMUI_iOS

QMUI iOS——致力于提高项目 UI 开发效率的解决方案
http://qmuiteam.com/ios
Other
7.07k stars 1.37k forks source link

系统夜间模式下,QMUIDemo主题不开启跟随系统并设置为日间模式,此时底部tabbar出现异常 #1301

Open jiasongs opened 2 years ago

jiasongs commented 2 years ago

Bug 表现 系统夜间模式下,QMUIDemo主题不开启跟随系统并设置为日间模式,此时底部tabbar还是夜间模式的样式

截图 0E02C60BB6E7496C939481901340524B

Demo 全局搜索「QMUI_iOS/issues/1301」,查看改动的地方 _QMUIDemo_iOS.zip

如何重现

  1. 设置系统为夜间模式
  2. QMUIDemo不开启跟随系统 QMUIThemeManagerCenter.defaultThemeManager.respondsSystemStyleAutomatically = NO;
  3. QMUIDemo设置为日间模式
  4. 重启QMUIDemo

预期的表现 系统夜间模式下,QMUIDemo主题不开启跟随系统并设置为日间模式,tabbar也应为日间模式的样式

其他信息

jiasongs commented 2 years ago
图片

如上图所示,setTabBarStyle判断了前后值是否相等,首次设置时,_tabBarStyle与将要设置的tabBarStyle都是UIBarStyleDefault,对应的样式是UIBlurEffectStyleSystemChromeMaterialLight,但是此时系统是UIBlurEffectStyleSystemChromeMaterial,所以就产生了以上的问题

MainByElse commented 2 years ago

same issue,good boy 😁

MoLice commented 2 years ago

在目前 QMUI 只提供 barStyle 配置项的情况下,这个问题无法解决。因为在 iOS 13 及以后,系统的 barStyle 已经无法精准控制 UINavigationBar/UITabBar/UIToolbar 的磨砂样式,直接原因是 QMUI 配置表没有与最新系统对齐导致的。后续会再增加精准的 backgroundEffect 配置项,4.4.0 里原本有尝试加上,但牵扯到的改动太大,测试时间不足,所以安排到 4.4.0 之后再处理。

在此之前只能由业务项目自行在 iOS 13 时设置 backgroundEffect