腾讯 QMUI iOS UI 框架 2.9.3 版本发布

栏目: IOS · 发布时间: 5年前

内容简介:QMUI iOS 2.9.3 版本已发布,更新内容如下:如何适配新版

QMUI iOS 2.9.3 版本已发布,更新内容如下:

新增功能

  1. 增加 NSObject (QMUI_DataBind) 用于临时给  NSObject 添加一些信息,省去自定义 class 或者增加 property 的成本。

  2. UIViewController (QMUI) 增加  qmui_visibleState 用于获取当前 viewController 所处的生命周期阶段。

  3. UIViewController (QMUI) 增加  qmui_visibleStateDidChangeBlock 用于监听  qmui_visibleState 变化。

  4. UIViewController (QMUI) 增加  qmui_prefersStatusBarHidden 和  qmui_preferredStatusBarStyle 用于获取真正的状态栏信息,如果仅使用系统的这两个方法需要额外处理  childViewController 的场景。

  5. UIView (QMUI) 增加  qmui_isControllerRootView 用于判断当前 view 是否为某个 viewController 的 view。

  6. UIView (QMUI) 增加  qmui_viewController 用于获取当前 view 所在的 viewController。

  7. UIView (QMUI) 增加  qmui_visible 用于判断该 view 是否处于 window 层级树里,或者所属的 viewController 是否可视。常见的使用场景是例如对键盘、 scrollViewDidScroll: 的监听时,常常会在 view 已经不可见时依然触发监听,所以可以用这个属性来过滤。

  8. NSString (QMUI) 增加  qmui_stringMatchedByPattern: 方法用于通过正则表达式来匹配一段文字。

  9. UISearchBar (QMUI) 增加  qmui_backgroundView 接口用于获取背景图所在的 view。

  10. UIScrollView (QMUI) 增加  qmui_scrollToTopUponContentInsetTopChange 用于修改了  contentInset.top 后滚动到顶部用,常见的使用场景是在 viewController 里关闭了  automaticallyAdjustsScrollViewInsets 或者  scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever 的时候设置了自己的  contentInset 后要让 scrollView 滚动位置默认处于顶部。

  11. UITableView (QMUI) 增加  qmui_initialContentInset 用于快速设置自定义的  contentInset 并滚到顶部。

  12. UIWindow (QMUI) 增加  qmui_capturesStatusBarAppearance 属性用于控制该 window 是否有权控制状态栏样式,系统默认认为全屏的  UIWindow 即会夺取状态栏的控制权。

  13. UIViewController (QMUI) 增加  QMUIAppSizeWillChangeNotification 用于在 App 窗口尺寸发生变化时第一时间发出通知,常见使用场景是 iPad Split View 分屏模式。

  14. QMUIAlertController 增加  dismissKeyboardAutomatically 用于在显示时自动降下键盘,默认为 YES,以保持与系统的  UIAlertController 一致,从而避免在键盘升起时显示 alert 可能导致 alert 被键盘盖住的问题。

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

  1. 重构 QMUIImagePreviewViewController ,将其展示原理从  UIWindow 的方式改为普通的 present。

  2. 废弃 QMUICommonTableViewController tableViewInitialContentInset 和  tableViewInitialScrollIndicatorInsets 属性。

  3. 废弃 [QMUIHelper renderStatusBarStyleLight/Dark] ,请使用系统的  preferredStatusBarStyle 代替。

如何适配新版

  1. 检查项目中用到 QMUIImagePreviewViewController 的地方,将其改为新的使用方法。新用法请查看头文件,或者参考 QMUI Demo 里的  QDImagePreviewViewController2 。注意由于新的用法使用系统的  presentViewController:animated:completion: ,所以需要使用一个现成的 viewController 去 present,若原代码里获取不到 viewController 的引用,可以使用  [QMUIHelper visibleViewController] 代替。

  2. 全局搜索 tableViewInitialContentInsettableViewInitialScrollIndicatorInsets ,将其换成新的  [UITableView (QMUI) qmui_initialContentInset]

  3. 全局搜索 renderStatusBarStyleLightrenderStatusBarStyleDark ,将其替换为系统的  preferredStatusBarStyle ,注意后者要求项目的  Info.plist 里的  View controller-based status bar appearance 改为  YES

  4. 将 2.9.2 标记为废弃的以下四个方法删除,并改为使用配置表的 AutomaticCustomNavigationBarTransitionStyle ,或者用  customNavigationBarTransitionKey

  5. shouldCustomNavigationBarTransitionWhenPushAppearing
    shouldCustomNavigationBarTransitionWhenPushDisappearing
    shouldCustomNavigationBarTransitionWhenPopAppearing
    shouldCustomNavigationBarTransitionWhenPopDisappearing
    
  6. 如果有使用配置表,请搜索配置表里的 windowLevelQMUIImagePreviewView 并将其删除。

Bugfix

  1. Fixed #365 修复某些情况下使用  QMUIImagePreviewViewController 会命中  NSAssert 的 bug。

  2. Fixed #439 修复了因系统 bug 导致 QMUIButton 在  setImage: 前就主动访问过  imageView 后导致后续布局时  imageView.image 依然为  nil ,从而导致布局不正确的 bug。

  3. Fixed #445 修复  QMUIImagePreviewViewController 在横竖屏切换时可能导致状态栏丢失的 bug。

  4. Fixed #446 修复系统 UITabBar 某些场景下忽然不可见的 bug。

  5. Fixed #452 修复  QMUIMarqueeLabel 文字没有垂直居中显示的 bug。

  6. 修复 QMUINavigationController 在某个 viewController 的  viewDidAppear 里 push,会被认为上一次 push 的动画尚未结束,所以被拦截,导致 push 失效的 bug。

  7. 修复 QMUIHelper 的  isNotchedScreensafeAreaInsetsForDeviceWithNotch 等于全面屏相关的接口在新 iPad Pro 上判断错误的 bug。

  8. 修复 QMUINavigationBarScrollingAnimator 和  QMUINavigationBarScrollingSnapAnimator 因浮点精度可能导致的样式错误。

  9. 修复隐藏 UINavigationBar 的界面依然会去修改导航栏样式,导致手势返回时导航栏样式错误的 bug。

  10. 修复开启了 AutomaticCustomNavigationBarTransitionStyle 的情况下在一个界面显示 navigationBar 另一个界面不显示 navigationBar 的时候,切换界面时判断错误的问题。

  11. 修复 UIImageView (QMUI) 在使用  initWithImage: 方法初始化时  qmui_smoothAnimation 的默认值错误的 bug。

其他

  1. 更新 [QMUIHelper isHighPerformanceDevice] 方法的判断,iPad Air 2 及以上、iPhone 8 及以上都认为是高性能设备。

  2. #410 #422 这两个系统 bug 实测在 iOS 12.1.1 里已被修复,因此 QMUI 2.9.3 版本里已对 12.1.1 及以后的系统屏蔽补丁代码。

发行地址

QMUI iOS 是一个致力于提高项目 UI 开发效率的解决方案,其设计目的是用于辅助快速搭建一个具备基本设计还原效果的 iOS 项目,同时利用自身提供的丰富控件及兼容处理, 让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目质量得到大幅度提升。

腾讯 QMUI iOS UI 框架 2.9.3 版本发布 腾讯 QMUI iOS UI 框架 2.9.3 版本发布


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java常用算法手册

Java常用算法手册

2012-5 / 59.00元

《Java常用算法手册》分三篇,共13章,分别介绍了算法基础、算法应用和算法面试题。首先介绍了算法概述,然后重点分析了数据结构和基本算法思想;接着,详细讲解了算法在排序、查找、数学计算、数论、历史趣题、游戏、密码学等领域中的应用;最后,列举了算法的一些常见面试题。书中知识点覆盖全面,结构安排紧凑,讲解详细,实例丰富。全书对每一个知识点都给出了相应的算法及应用实例,虽然这些例子都是以Java语言来编......一起来看看 《Java常用算法手册》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具