Tencent / QMUI_iOS

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

Xcode 14 编译的 App 在 iOS 16.0 上可能存在顶部标题布局错乱 #1457

Closed MoLice closed 1 year ago

MoLice commented 1 year ago

Bug 表现

https://user-images.githubusercontent.com/1190261/199296702-816ced51-3f8c-4456-9311-ac2cd059ddee.mp4

如何重现

  1. vc1 使用系统的标题。
  2. vc2 使用自定义的标题(self.navigationItem.titleView = xxx)。
  3. 通过 animated:NO 的方式,无动画地切到 vc2(不管是通过 pushViewController:animated:NO 还是 setViewControllers:animated:NO),即可看到 vc2 的标题紧贴着导航栏顶部,无法垂直居中。
  4. 无动画地切回 vc1,即可看到 vc1 的标题紧贴着导航栏底部,无法垂直居中。

测试 Demo:TestTitleViewAndSetView.zip

其他测试场景

  1. 如果以动画形式,或者手势返回的形式切换界面,均不会有该问题。
  2. 如果 vc1 是自定义标题,vc2 是系统标题,也不会有问题。
  3. 实际上只要无动画地让标题从系统标题改为自定义标题(例如停留在 vc 里直接 self.navigationItem.titleView = xxx),都会有问题。
  4. 以 Xcode 13 编译的包在 iOS 16 上运行时不会有问题。
  5. 以 Xcode 14 编译的包在 iOS 15 上运行时不会有问题。

其他信息

MoLice commented 1 year ago

但是发现 Xcode 13 编译的包在某些机子上也会,某些机子又不会,不确定这个条件。

MoLice commented 1 year ago

iOS 16.1 已不存在该 bug

MoLice commented 1 year ago

已修复该问题,请根据 iOS 版本支持情况选择升级到 4.6.0(iOS 11-16)4.6.1(iOS 13-16)