https://github.com/Tencent/QMUI_iOS
QMUI iOS 是一个致力于提高项目 UI 开发效率的解决方案,其设计目的是用于辅助快速搭建一个具备基本设计还原效果的 iOS 项目,同时利用自身提供的丰富控件及兼容处理, 让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目质量得到大幅度提升。
功能特性
全局 UI 配置
只需要修改一份配置表就可以调整 App 的全局样式,包括颜色、导航栏、输入框、列表等。一处修改,全局生效。
UIKit 拓展及版本兼容
拓展多个 UIKit 的组件,提供更加丰富的特性和功能,提高开发效率;解决不同 iOS 版本常见的兼容性问题。
丰富的 UI 控件
提供丰富且常用的 UI 控件,使用方便灵活,并且支持自定义控件的样式。
高效的工具方法及宏
提供高效的工具方法,包括设备信息、动态字体、键盘管理、状态栏管理等,可以解决各种常见场景并大幅度提升开发效率。
QMUICore:配置表、全局的宏、工具方法等,是所有 QMUI 类的基础代码。
QMUIMainFrame:几个常用的 UIViewController 的基类,建议将这几个基类作为你项目里的对应 class 的父类,QMUI iOS 有大量功能也是基于这几个基类实现。
UIKitExtensions:对系统 UIKit 的拓展,所有 Category 的方法、属性均会带 qmui_ 前缀,以避免冲突。
QMUIComponents:提供大量常用的控件,具体的控件列表请查看功能列表,至于效果展示、使用代码示例请查看 QMUI Demo。
QMUIResources:存储 QMUI 控件里可能用到的一些图,例如表情面板的删除按钮、选图控件的 checkbox、QMUITips 那些成功、失败的 icon 等。
QMUIKit Classes
QMUIAlbumViewController用于展示当前设备相册里的相簿列表
QMUIAlertController用于代替系统的 UIAlertController 的模态弹窗控件
QMUIAsset封装了系统的 PHAsset,用于表示相簿里的一个资源
QMUIAssetsGroup封装了系统的 PHAssetCollection、PHFetchResult,用于表示一个相簿或者相簿资源合集
QMUIAssetsManager相簿相关的工具类
QMUIBadge用于在 UIBarButtonItem、UITabBarItem 上显示未读数(badge)和未读红点(updatesIndicator),且对设置的时机无要求,不用担心 valueForKey:@"view" 返回 nil 的情况。
QMUIButton用于代替系统的 UIButton 的按钮控件
QMUINavigationButton专用于顶部导航栏按钮的控件
QMUIToolbarButton专用于 UIToolbar 上的按钮的控件
QMUICellHeightKeyCache配合 UITableView 使用的 cell 高度缓存控件,依赖于 estimatedRowHeight 和 self-sizing cells,具体的使用方式请参考 UITableView (QMUICellHeightKeyCache) 注释。
QMUICollectionViewPagingLayout一个自定义的 UICollectionViewFlowLayout,用于横向的按页滚动布局
QMUICommonDefines这并非一个 Class,而只是一个头文件,里面定义了大量的常用的宏及 C 函数
QMUICommonViewController对应系统的 UIViewController,建议作为项目里的所有界面的基类来使用
QMUICommonTableViewController对应系统的 UITableViewController,作为项目里的列表界面的基类来使用。
QMUIConfiguration维护项目全局 UI 配置的单例,像通用的色值、UIWindowLevel 的维护、常见的 UIKit 控件的自定义等,都由这个类管理。
QMUIDialogViewController通用的弹窗控件
QMUIDialogSelectionViewController基于 QMUIDialogViewController 实现的支持列表选择的弹窗,支持单选和多选。
QMUIDialogTextFieldViewController基于 QMUIDialogViewController 实现的带输入框的弹窗,支持自动管理提交按钮的 enable 状态。
QMUIEmotionView通用的表情展示控件,支持横竖两个滚动方向,支持翻页,带有 pageControl 和发送按钮。
QMUIEmotionInputManager基于 QMUIEmotionView 实现的通用表情面板,需要绑定一个 UITextField 或 UITextView 来使用,会接管输入框的文字删除,自动判断当前是否正在删除某个表情的占位符。
QMUIEmptyView通用的空界面控件,支持显示 loading、主标题和副标题、图片。
QMUIGridView用于做九宫格布局,根据指定的列数和行高,把每个 item 拉伸到相同的大小。
QMUIHelper UI 工具类
QMUIImagePickerHelper图片选择相关的工具类
QMUIImagePreviewView通用的左右滑动查看大图的控件,支持从指定的某张图开始预览。
QMUILabel在 UILabel 的基础上增加了 3 个特性
QMUIMarqueeLabel跑马灯效果的 label。
QMUINavigationController对应系统的 UINavigationController,建议作为项目里的所有 navigationController 的基类。
QMUISearchBar具备 QMUIConfigurationTemplate 内设定的全局样式的搜索框
QMUITextField用于代替系统的 UITextField
QMUITextView用于代替系统的 UITextView
QMUITheme一个支持全 iOS 版本的换肤组件
QMUIToastView用于显示 toast 的控件
···
QMUI就是等于封装好的主题库,组件库,方法库等等。 个人app建议直接用,能较好的UI效果与提升开发速度。
网友评论