看過輕量級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