基础库梳理一
四月 13, 2020
2880
背景
当iOS的项目比较成熟后,下一步伴随着的设计必然是进行相关组件化的尝试,也就是最后的项目设计必然是模块化,而模块化的前提必然是进行公共组件或者业务的提取,构建成对应的成熟可扩展的framwork进行引入就可以使用其中的api业务。
整体结构图
下面是关于我们本身应用设计的整体组件结构图
着手开始
我们前面进行常用公共方法api集成构建的PublicMethods
模块即可看做是其中初步实现的基础工具类集群framework,那下面我要处理的是项目中UI和数据等构建的基础视图库framework和基础数据库framework。
梳理第一章节
基础视图库framework
目前比较成熟的基础UI库就是对应的QMUIKit框架,那么我们目前是以该框架为原型进行继承构建,主要是为了统一基础样式以及后续的可替换可维护性。这里对应的QMUI的视图不做介绍,这里只是对其缺失的需要进行相关的补充.
UIView–系统类基础视图
1.做分类category(组件化思考),包括:
- 空白视图(也可直接应用QMUIKit的QMUIEmptyView)
- 红点badge(可引入或者仿写第三方框架)
- 事件绑定
- 视图背景图加载
UIButton–系统类基础按钮
分类实现,包括:
- 按钮远程图片加载
- 响应区设置
UIScrollView–系统类基础滚动视图
分类实现,包括:
- 重复嵌套的手势识别字段控制
UILabel–系统类基础标签文本视图
这里继承QMUILabel即可,提供:
- 提供加载html或者富文本的api
UITextView–系统类基础多行文本视图
这里继承QMUITextView即可,提供:
- 验证输入代理
- 宽度计算
UITableViewCell–系统类基础表单cell视图
这里走继承体系QMUITableViewCell,主要是为了承接多态设计
1 |
|
1 |
|
UICollectionViewCell–系统类基础九宫格cell视图
走继承UICollectionViewCell,主要是为了承接多态设计
1 |
|
1 |
|
UIViewcontroller–基础控制器
基础控制器一般是构建一个基础BaseViewcontroller继承UIViewcontroller作为顶层可扩展类。
划分结构:
1.状态栏statusBar样式
- 使用UIViewcontroller的分类进行api的控制,因为子类可以重写改变
2.自动旋转,目前应用不支持自动旋转,这里省略
3.视图操作
- 构建viewDidLoad的默认setting方法,让子类重写
- 根据route进行参数映射公共方法解析
基础的就是上面一些,下面就是关于BaseViewcontroller继承扩展的控制器:
1.BaseListViewController
顾名思义,就是列表视图的常用结构,提供子类重写便于扩展(如果想使用QMUITableView的组件机制也是可行的)
- 提供上下刷新的组件分类
- 提供空白页显示的组件分类
- 提供刷新提示语控制的组件分类
- 其他业务操作组件分类
2.BaseWebViewController
进行h5页面装载的容器控制器
- 常规UI设置及url加载逻辑
- 桥接组件化分类
- 代理组件化分类
- 其他业务操作组件化分类
- 本文作者:习武
- 本文链接:https://xiwuxisheng.github.io/2020/04/13/iOS/%E7%BB%84%E4%BB%B6%E5%8C%96(%E4%B8%80)-%E5%9F%BA%E7%A1%80%E5%BA%93%E7%9A%84%E6%A2%B3%E7%90%86/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!