看過輕量級ViewController采用的瘦身方法是將UITableViewDataSource抽離出來,但是這里Cell的繪制還是在ViewController里面,如果頁面復(fù)雜還是會有很多Cell的Block殘留。另外還有個問題就是,每次我新建一個ViewController時,都需要拷貝Cell的Block。我們能不能讓ViewController容量減少的同時,又能讓DataSource通用呢?
下面我們提出ComponentTableview,一種組件化的思路,我們把DataSource和Cell的繪制統(tǒng)一到一個Component(組件)里面,這樣就可以達(dá)到ViewController瘦身+Component高復(fù)用。詳細(xì)使用方法:
1. ViewController繼承BaseAssemblyDispatcher類,重寫components方法即可;例如:

2. 實現(xiàn)自己的中間件。首先繼承BaseAssemblyComponent,其次在setupComponent方法里初始化數(shù)據(jù)源or接受外面?zhèn)鬟M(jìn)來的數(shù)據(jù)源,然后調(diào)用系統(tǒng)繪制TableviewCell的方法。eg:

3、若想復(fù)用別人的中間件,僅僅只需要在UIViewController修改components方法;

Github地址:ComponentTableView
實例Demo:Demo