看过轻量级ViewController采用的瘦身方法是将UITableViewDataSource抽离出来,但是这里Cell的绘制还是在ViewController里面,如果页面复杂还是会有很多Cell的Block残留。另外还有个问题就是,每次我新建一个ViewController时,都需要拷贝Cell的Block。我们能不能让ViewController容量减少的同时,又能让DataSource通用呢?
下面我们提出ComponentTableview,一种组件化的思路,我们把DataSource和Cell的绘制统一到一个Component(组件)里面,这样就可以达到ViewController瘦身+Component高复用。详细使用方法:
1. ViewController继承BaseAssemblyDispatcher类,重写components方法即可;例如:
2. 实现自己的中间件。首先继承BaseAssemblyComponent,其次在setupComponent方法里初始化数据源or接受外面传进来的数据源,然后调用系统绘制TableviewCell的方法。eg:
3、若想复用别人的中间件,仅仅只需要在UIViewController修改components方法;
Github地址:ComponentTableView
实例Demo:Demo