内容简介:QMUI iOS 2.9.3 版本已发布,更新内容如下:如何适配新版
QMUI iOS 2.9.3 版本已发布,更新内容如下:
新增功能
-
增加
NSObject (QMUI_DataBind)用于临时给NSObject添加一些信息,省去自定义 class 或者增加 property 的成本。 -
UIViewController (QMUI)增加qmui_visibleState用于获取当前 viewController 所处的生命周期阶段。 -
UIViewController (QMUI)增加qmui_visibleStateDidChangeBlock用于监听qmui_visibleState变化。 -
UIViewController (QMUI)增加qmui_prefersStatusBarHidden和qmui_preferredStatusBarStyle用于获取真正的状态栏信息,如果仅使用系统的这两个方法需要额外处理childViewController的场景。 -
UIView (QMUI)增加qmui_isControllerRootView用于判断当前 view 是否为某个 viewController 的 view。 -
UIView (QMUI)增加qmui_viewController用于获取当前 view 所在的 viewController。 -
UIView (QMUI)增加qmui_visible用于判断该 view 是否处于 window 层级树里,或者所属的 viewController 是否可视。常见的使用场景是例如对键盘、scrollViewDidScroll:的监听时,常常会在 view 已经不可见时依然触发监听,所以可以用这个属性来过滤。 -
NSString (QMUI)增加qmui_stringMatchedByPattern:方法用于通过正则表达式来匹配一段文字。 -
UISearchBar (QMUI)增加qmui_backgroundView接口用于获取背景图所在的 view。 -
UIScrollView (QMUI)增加qmui_scrollToTopUponContentInsetTopChange用于修改了contentInset.top后滚动到顶部用,常见的使用场景是在 viewController 里关闭了automaticallyAdjustsScrollViewInsets或者scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever的时候设置了自己的contentInset后要让 scrollView 滚动位置默认处于顶部。 -
UITableView (QMUI)增加qmui_initialContentInset用于快速设置自定义的contentInset并滚到顶部。 -
UIWindow (QMUI)增加qmui_capturesStatusBarAppearance属性用于控制该 window 是否有权控制状态栏样式,系统默认认为全屏的UIWindow即会夺取状态栏的控制权。 -
UIViewController (QMUI)增加QMUIAppSizeWillChangeNotification用于在 App 窗口尺寸发生变化时第一时间发出通知,常见使用场景是 iPad Split View 分屏模式。 -
QMUIAlertController增加dismissKeyboardAutomatically用于在显示时自动降下键盘,默认为 YES,以保持与系统的UIAlertController一致,从而避免在键盘升起时显示 alert 可能导致 alert 被键盘盖住的问题。
会带来 QMUI 新旧版本兼容问题的更新
-
重构
QMUIImagePreviewViewController,将其展示原理从UIWindow的方式改为普通的 present。 -
废弃
QMUICommonTableViewController tableViewInitialContentInset和tableViewInitialScrollIndicatorInsets属性。 -
废弃
[QMUIHelper renderStatusBarStyleLight/Dark],请使用系统的preferredStatusBarStyle代替。
如何适配新版
-
检查项目中用到
QMUIImagePreviewViewController的地方,将其改为新的使用方法。新用法请查看头文件,或者参考 QMUI Demo 里的QDImagePreviewViewController2。注意由于新的用法使用系统的presentViewController:animated:completion:,所以需要使用一个现成的 viewController 去 present,若原代码里获取不到 viewController 的引用,可以使用[QMUIHelper visibleViewController]代替。 -
全局搜索
tableViewInitialContentInset、tableViewInitialScrollIndicatorInsets,将其换成新的[UITableView (QMUI) qmui_initialContentInset]。 -
全局搜索
renderStatusBarStyleLight、renderStatusBarStyleDark,将其替换为系统的preferredStatusBarStyle,注意后者要求项目的Info.plist里的View controller-based status bar appearance改为YES。 -
将 2.9.2 标记为废弃的以下四个方法删除,并改为使用配置表的
AutomaticCustomNavigationBarTransitionStyle,或者用customNavigationBarTransitionKey。 -
如果有使用配置表,请搜索配置表里的
windowLevelQMUIImagePreviewView并将其删除。
shouldCustomNavigationBarTransitionWhenPushAppearing shouldCustomNavigationBarTransitionWhenPushDisappearing shouldCustomNavigationBarTransitionWhenPopAppearing shouldCustomNavigationBarTransitionWhenPopDisappearing
Bugfix
-
Fixed #365 修复某些情况下使用
QMUIImagePreviewViewController会命中NSAssert的 bug。 -
Fixed #439 修复了因系统 bug 导致 QMUIButton 在
setImage:前就主动访问过imageView后导致后续布局时imageView.image依然为nil,从而导致布局不正确的 bug。 -
Fixed #445 修复
QMUIImagePreviewViewController在横竖屏切换时可能导致状态栏丢失的 bug。 -
Fixed #446 修复系统 UITabBar 某些场景下忽然不可见的 bug。
-
Fixed #452 修复
QMUIMarqueeLabel文字没有垂直居中显示的 bug。 -
修复
QMUINavigationController在某个 viewController 的viewDidAppear里 push,会被认为上一次 push 的动画尚未结束,所以被拦截,导致 push 失效的 bug。 -
修复
QMUIHelper的isNotchedScreen、safeAreaInsetsForDeviceWithNotch等于全面屏相关的接口在新 iPad Pro 上判断错误的 bug。 -
修复
QMUINavigationBarScrollingAnimator和QMUINavigationBarScrollingSnapAnimator因浮点精度可能导致的样式错误。 -
修复隐藏
UINavigationBar的界面依然会去修改导航栏样式,导致手势返回时导航栏样式错误的 bug。 -
修复开启了
AutomaticCustomNavigationBarTransitionStyle的情况下在一个界面显示 navigationBar 另一个界面不显示 navigationBar 的时候,切换界面时判断错误的问题。 -
修复
UIImageView (QMUI)在使用initWithImage:方法初始化时qmui_smoothAnimation的默认值错误的 bug。
其他
-
更新
[QMUIHelper isHighPerformanceDevice]方法的判断,iPad Air 2 及以上、iPhone 8 及以上都认为是高性能设备。 -
#410 #422 这两个系统 bug 实测在 iOS 12.1.1 里已被修复,因此 QMUI 2.9.3 版本里已对 12.1.1 及以后的系统屏蔽补丁代码。
QMUI iOS 是一个致力于提高项目 UI 开发效率的解决方案,其设计目的是用于辅助快速搭建一个具备基本设计还原效果的 iOS 项目,同时利用自身提供的丰富控件及兼容处理, 让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目质量得到大幅度提升。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- quickly 1.3 版本发布,CSS 前端框架
- WebMagic 0.7.1 版本发布,Java 爬虫框架
- PHP 开发框架 TimoPHP 1.7.0 版本发布
- WebMagic 0.7.0 版本发布,Java 爬虫框架
- WebMagic 0.7.2 版本发布,Java 爬虫框架
- DiQuick Web 前端框架 1.2.3 版本更新
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。