最近公司的一个新项目的1.0版本开发完了,但是对于这么一个初期的项目,部分VC的代码行数仍然超过300行。我也开始感觉到有种(Massive)MVC 的趋势,而且部分界面控件的创建方法还是略略有点Magic。于是我开始寻求新的架构,来改善当前的状况。我想起了之前听说过的 ReactiveCocoa,加上最近Ray神和Objcio.cn的介绍,我也开始了RAC的“修炼”。
不过,RAC的学习不但需要了解其API的作用,更重要的是用RAC的思维去思考。如果用传统的MVC架构思维,我可以很快速写出一个简单的框架,但是 学习RAC和MVVM,就发现原来很多理所当然的东西也要仔细去思考。对于初学者而言,RAC并不是很友好,但掌握基本用法后,就已经可以感受到RAC的优势。
在学习的时候,我看到了Ray神上面用Signal和Command来代替UITableViewDataSource和 UITableViewDelegate的helper。不过,本人还是觉得不太满意,毕竟需要额外的helper,而且限定cell必须来自xib。于 是基于Ray神的基础上,我把这套模式搬到了UITableView层上,同时也支持多个section和cell的定制。这类相对常用的控件,我不想把 API设计得过于复杂,所以对于有相对特殊的要求还是需要实现DataSource和Delegate。本人意在把Ray神的思路整合到控件层,并不打算 写高大上的控件。
GitHub地址:https://github.com/ipinka/PINKFramework/tree/master/View