QMUI学习
2020-05-05 本文已影响0人
环宇飞杨
QMUI 简介
QMUI是腾讯开源的一套UI工具框架,对于日常常见的UI控件做了诸多封装,省去了开发者不断造轮子+验证的痛苦过程,框架涵盖iOS和安卓平台,除了主要的UI工具以外,自带辅助类也非常强大,其中很多实现细节都非常值得学习,基本可以认为是移动平台下最为全面的高质量代码了,如果能认真品味细节,庖丁解牛,一定会有很大收获。
知识点
在阅读官方文档的过程中https://qmuiteam.com/ios/documents/
,主要记录了一些比较值得深挖的功能,一般都是自己实现过,也有过一些思考,想看下来自腾讯的大牛在同样问题上的考量比自己多出哪些,简单罗列下:
- 遍历某个 class 的所有成员变量。
- 自动保护 setBounds:、setPosition: 存在 NaN 导致的 crash。
- 一个支持全 iOS 版本的换肤组件,并兼容 iOS 13 的 Dark Mode。
- QMUIMultipleDelegates
- QMUIModalPresentationViewController
- 自带搜索框(按需加载),方便地使用搜索功能。
- 运行时相关的函数,例如 swizzle 方法替换、动态添加方法等。
- 通过 supportedOrientationMask 属性修改界面支持的设备方向,可直接对实例操作,无需重写系统的方法。
- 用于方便地实现类似系统设置的列表。
- NSPointerArray (QMUI)
- 产生一个随机色,一般用于调试行为。
- 调整控件的点击响应范围,一般用于加大小按钮的点击范围。
- 允许拦截系统返回按钮的事件(包括手势返回)。
接下来记录每个点的细分知识点。