之前一直有写点技术文章的冲动,苦于文笔有限,技术也还远远不够,就被搁浅了~~
但是不总结就不会有进步,梳理一下自己的知识树对自己的提升很有帮助。
‘勿以技小而不为’ ,这句话同学们应该都懂。
框架图
废话不多说,直接上图 高清图链接(图里只有大概内容,详细注释及代码实现见Demo)
项目结构
ZMDemo为方便扩展所以写的比较简单,层次结构明显, 适合萌新来学习项目框架的搭建, 也适用于中小型应用的开发。
使用方法及原理
控制器界面 无非就是请求数据,保存数据以及显示数据。
首先是请求数据:根据不同的界面请求不同的API,传不同的参数,后台就能返回不同的结果,所以你的控制器里就只需要重写父类的请求数据的方法(只是简单的显示数据而已),就能实现整个功能。
就只要写一个方法,一个方法~~
然后就是保存数据:Model类方法将请求后的数据转成相应的模型,并保存在数组里,通过block将结果回调到控制器里。
最后就是显示数据:基类里提供一个通过数组刷新页面的方法,只要将回调的结果传入这个方法,即可刷新页面。
cell(拿TableViewCell来举例)里的内容都是根据模型来显示的,想要在基类里实现TableView的代理方法就需要为UITableViewCell增加类别,让所有的TableViewCell都有填充数据的方法(也可用协议来实现)。
补充说明
1.界面元素的增删改操作:(拿TableView来举例)
创建的Cell继承自ZMTableViewCell,会有增删改的代理方法,设置代理的方法见上面红线
附效果图一张,整个实现控制器中也不过50行代码!! 不过50行!!
2.复杂界面的实现:图文类似微博,朋友圈实现;
实现可参考ZMDemo 中 ZMDynamicController文件, 控制器70行代码,不能再多了。
3. 基类ZMViewController 回调block的介绍
在修改下个界面的内容后,上个界面也要求随之改动 就可以用到回调block
举个例子: 动态列表 -> 动态详情 -> 收藏动态 -> 返回刷新动态列表中该动态的状态。
以下是实现代码
实现起来是不是非常简单易懂,还有一些小细节就没有一一说明了。 自己可多了解Demo,都是一些简单的操作,暂时就写到这里吧!(下个月试试swift)
结束语(如有巧合,纯属雷同!!!)
编程思路有很多,这只是其中一种,经过七八个项目的洗礼,稍微总结了一下编程经验,提高编程效率,让别人也能看懂自己的代码那自然是最好不过的了。
对项目中如有写的不对或是有不理解的地方欢迎骚扰我。
QQ: 893422739
技术讨论群(PP-iOS学习交流群):323408051 欢迎萌新加入讨论学习,也欢迎大神指点问题。
ps:我在里面划水! <群昵称:居然说我昵称太长>
项目地址:https://github.com/Hziming/ZMDemo 觉得有帮助的还望点颗星来支持一下!!!