看過輕量級ViewController采用的瘦身方法是將UITableViewDataSource抽離出來,但是這里Cell的繪制還是在ViewController里面,如果頁面復雜還是會有很多Cell的Block殘留把篓。另外還有個問題就是,每次我新建一個ViewController時瀑焦,都需要拷貝Cell的Block蔫浆。我們能不能讓ViewController容量減少的同時,又能讓DataSource通用呢软啼?
下面我們提出ComponentTableview桑谍,一種組件化的思路,我們把DataSource和Cell的繪制統(tǒng)一到一個Component(組件)里面祸挪,這樣就可以達到ViewController瘦身+Component高復用锣披。詳細使用方法:
1. ViewController繼承BaseAssemblyDispatcher類,重寫components方法即可;例如:
2. 實現(xiàn)自己的中間件雹仿。首先繼承BaseAssemblyComponent增热,其次在setupComponent方法里初始化數(shù)據(jù)源or接受外面?zhèn)鬟M來的數(shù)據(jù)源,然后調(diào)用系統(tǒng)繪制TableviewCell的方法盅粪。eg:
3钓葫、若想復用別人的中間件,僅僅只需要在UIViewController修改components方法票顾;
Github地址:ComponentTableView
實例Demo:Demo