您的位置 首页 > 娱乐休闲

基于MVC设计模式的iOS开发框架-ZMDemo

ZMDemo框架图


项目结构

ZMDemo为方便扩展所以写的比较简单,层次结构明显, 适合萌新来学习项目框架的搭建, 也适用于中小型应用的开发。

工程结构

pod 导入的第三方


使用方法及原理

控制器界面 无非就是请求数据,保存数据以及显示数据。

首先是请求数据:根据不同的界面请求不同的API,传不同的参数,后台就能返回不同的参数,所以你的控制器里就只需要重写父类的请求数据的方法(只是简单的显示数据而已),就能实现整个功能。

就只要写一个方法,一个方法~~

每个控制器会对应一个ZMModel对象,在控制器里传参数,Model类方法里会提供这个界面的API

然后就是保存数据:Model类方法将请求后的数据转成相应的模型,并保存在数组里,通过block将结果回调到控制器里。

保存数据

最后就是显示数据:基类里提供一个通过数组刷新页面的方法,只要将回调的结果传入这个方法,即可刷新页面。

显示数据 tableView或者是CollcetionView reloadData

cell(拿TableViewCell来举例)里的内容都是根据模型来显示的,想要在基类里实现TableView的代理方法就需要为UITableViewCell增加类别,让所有的TableViewCell都有填充数据的方法(也可用协议来实现)。

paddingData

基类实现TableView的代理方法

补充说明

1.界面元素的增删改操作:(拿TableView来举例)

创建的Cell继承自ZMTableViewCell,会有增删改的代理方法,设置代理的方法见上面红线

ZMTableViewCell及代理方法

cell里 删除按钮的点击事件

删除数据,刷新界面

附效果图一张,整个实现控制器中也不过50行代码!! 不过50行!!

删除操作

2.复杂界面的实现:图文类似微博,朋友圈实现;

实现可参考ZMDemo 中 ZMDynamicController文件, 控制器70行代码,不能再多了。

复杂界面的实现

3. 基类ZMViewController 回调block的介绍

在修改下个界面的内容后,上个界面也要求随之改动 就可以用到回调block

回调介绍

举个例子: 动态列表 -> 动态详情 -> 收藏动态 -> 返回刷新动态列表中该动态的状态。

效果图

以下是实现代码

设置回调(这里是带参回调,如果是刷新整个页面可用 refresh 来回调)

触发回调

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“ios如何使用demo,ios如何使用微信充值,ios如何使用nfc,ios如何使用安卓软件”边界阅读