iOS用MVVM构架写个界面就是这么简单

2018-05-20  本文已影响290人  我想走走
Simulator Screen Shot - iPhone 8 Plus - 2018-05-20 at 18.10.15.png

Github下载地址:MVVM_Demo
有时候写着写着感觉真的是,只要自己习惯,怎样写都可以。

PersonModel和LoginViewController只是为了登录上,获取token然后能够正常的请求数据。重点是登陆之后的进入的界面.

ViewModel这个类是跟Model绑定的,同时和Cell交互并且和ViewController交互。

ViewModel其实就是一个FrameModel,在获取到数据源的时候,就将各个控件的frame、cellHeight都计算出来,在需要的地方直接使用即可.

而对于Cell上自定义的控件,在请求下来数据之后,自定义的View持有ViewModel,在自己的类中进行赋值,这样各司其职,最后在VC中刷新下,搞定。

Request这个类单独是为了请求,相当于从ViewController中封装了出去,在ViewController中,Request初始化对象,然后将获取到的数据给ViewModel去处理,ViewModel根据数据去绘制Frame,Cell中根据ViewModel给控件赋值。最后页面展示。

至于页面的上拉刷新我感觉怎么写都需要回到VC中去处理,再怎么封装,你最后都要用到tablevew,而tableview是VC持有的,其实可以进行封装,但是感觉好累啊,封来封去,不是在难为自己。。看公司需要吧。

E0756B0B-D8D6-47E6-9694-52199457C31D.png

现在作为一个彩笔,也只能一点一点的自己琢磨,希望能够遇到志同道合的朋友,有啥技术上的问题相互帮助。我知道自己写的还有很大的问题,希望大神们多多指点。

最后一点就是感觉MVP和MVVM差的不是太多,MVP就是写个协议,让VC去实现,为的就是刷新页面,需要用到VC去做的时候就在协议中加个方法,而MVVM感觉用的是block回调,来实现的,当然了这只是我这个彩笔的想法,大神们有什么想法,可以评论下指点一下。

上一篇下一篇

猜你喜欢

热点阅读