Skip to content

4.7.0

Compare
Choose a tag to compare
@MoLice MoLice released this 24 Jul 14:22
· 9 commits to master since this release

综述

随着 QMUI 最初的几位老人家各奔天涯,历经7年自费集资的老官网 qmuiteam.com在不久的将来费用消耗完就不再维护了,以后都在 GitHub。对应地,依附于官网的自动上报统计 SendAnalyticsToQMUITeam 也在这个版本删除,借此也跟大家分享下统计数据(毕竟在座的各位都参与其中)。

截止至2023-7-24,QMUI iOS 累计接入6w项目(以Bundle Id为维度),日活跃项目 1.6k+,月活跃项目 4.3k+。


这个版本主要是累积这段时间的修修补补。

新增功能

  1. qmui_outsideEdgeUIBarButtonItem.customView 也生效,以后你可以让导航栏按钮的响应区域扩大到导航栏之外了。
  2. CALayer(QMUI) 增加属性 qmui_maskPathBlock 用于快捷添加遮罩。
  3. CALayer(QMUI) 增加属性 qmui_evenOddMaskPathBlock 用于快捷镂空一个区域。
  4. NSArray(QMUI) 增加方法 qmui_compactMapWithBlock: 用于转换数组里的元素类型,并支持过滤掉 nil
  5. 增加 NSDictionary(QMUI) 分类,提供 qmui_mapWithBlock: 方法用于转换字典里的 key-value 类型,提供 qmui_deepMapWithBlock: 方法用于深度拷贝的转换。
  6. 新增 hook 用于保护 -[NSMutableAttributedString appendAttributedString:] 遇到参数为 nil 时会命中系统 assert: nil argument 的情况。
  7. UILabel(QMUI) 增加 qmui_centerOfCapHeight 属性用于获取单行文本里 font.capHeight 的位置。
  8. UINavigationController(QMUI) 增加属性 qmui_alwaysInvokeAppearanceMethods 用于在 UINavigationController 不可视时进行 push/pop 依然能触发 vc 生命周期方法的方法。
  9. UINavigationController(QMUI) 增加属性 qmui_lastOperation 用于获取当前正在进行的切换界面动画类型(push 或 pop)。
  10. UITextField(QMUI) 增加属性 qmui_respondsToDeleteActionAtLeading 用于对齐 UITextView 的行为:在输入框开头继续按删除按钮也可以触发 shoudChange 的 delegate 方法。

会带来 QMUI 新旧版本兼容问题的更新

  1. 配置表删除 SendAnalyticsToQMUITeam

如何适配新版

  1. 如果你有使用配置表,请删除其中的 SendAnalyticsToQMUITeam

Bugfix

  1. #1451 对因为被 present 盖住的界面,修改 navigationBar 样式时的 assert 条件做优化。
  2. 修复 #1473 UISearchController.searchBar 作为 UITableView.tableHeaderView 时,进入搜索状态,搜索结果列表顶部有一大片空白的问题。
  3. 修复 #1498 开启 forceEnableInteractivePopGestureRecognizer 的界面被 push 的过程中快速手势返回,容易导致 App 卡死的 bug。
  4. #1501 修复 AutomaticCustomNavigationBarTransitionStylesetViewControllers: 场景下的若干问题。
  5. 修复 QMUIImagePickerViewController 初始滚动位置可能错误的 bug。
  6. 修复 QMUIAlertControllerActionSheet 演示呈现较长内容时,顶部布局没考虑 safeAreaInsets 的问题。
  7. 修复 QMUIBadge 对纯文本的 UIBarButtonItem 基准布局错误的 bug。
  8. 修复 QMUIButtonadjustsButtonWhenDisabled = NO 时也会在 setEnabled:YES 里重置 alpha 的问题。
  9. 优化 QMUINavigationButton 自定义返回按钮点击区域太小的问题。
  10. 修复 QMUIKeyboardManager 在以 iPad“侧拉”模式打开的 App 中获取键盘可视高度错误的 bug,iPhone、iPad 全屏/分屏/台前调度,都没这个问题。
  11. 修复QMUITheme 在切换 theme 时错误地覆盖 UITextView.textColor 导致如果输入框内存在不同颜色的富文本时会颜色错误的 bug。
  12. 修复同一个对象对不同 window 分别调用 qmui_addSizeObserverForWindow:,最终其中某个 window size 发生变化时所有 block 都被触发的 bug。
  13. 解决在未使用配置表的情况下,QMUIAssert 应使自动变成 NSAssert 的问题。
  14. 修复 QMUI Demo 无法使用 XCTest 的问题。
  15. 修复 UISearchBar(QMUI) 快速在 show/hide left/right accessoryView 时容易出现状态错误的 bug。
  16. 修复 UIView(QMUI).qmui_shouldShowDebugColor 属性在开启又关闭后可能导致元素背景全黑的问题。