UITableView這個iOS開發(fā)中永遠繞不開的UIView,那么就不可避免的要在多個頁面多種場景下反復摩擦UITableView,就算是剛跳進火坑不久的iOS Developer也知道實現(xiàn)UITableView的數(shù)據(jù)源dataSource和代理delegate,寫出一個UITableView也就基本OK了,但是這僅僅是寫出一個UITableView而已,作為一個有想法的程序猿,要做的還有很多,如何利用UITableViewCell的重用機制,如何提高性能等,這些留在后面的系列中一一講述,那么本文要解決的痛點又是什么呢?回答這個問題之前,我們先來看看上面提到的UITableView的兩大核心:UITableViewDataSource、UITableViewDelegate!
一、UITableViewDataSource
UITableView需要一個數(shù)據(jù)源(dataSource)來顯示數(shù)據(jù),UITableView會向數(shù)據(jù)源查詢一共有多少行數(shù)據(jù)以及每一行顯示什么數(shù)據(jù)等。沒有設置數(shù)據(jù)源的UITableView只是個空殼。凡是遵守UITableViewDataSource協(xié)議的OC對象,都可以是UITableView的數(shù)據(jù)源。查看源碼:
UITableViewDataSourc
二、UITableViewDelegate
通常都要為UITableView設置代理對象(delegate),以便在UITableView觸發(fā)一下事件時做出相應的處理,比如選中了某一行。凡是遵守了UITableViewDelegate協(xié)議的OC對象,都可以是UITableView的代理對象。一般會讓控制器充當UITableView的dataSource和delegate。查看源碼:
UITableViewDelegate
到這里已經(jīng)很明確了,在需要實現(xiàn)UITableView的控制器對象里,就不可避免的要設置數(shù)據(jù)源和設置代理,那么就不可避免的需要實現(xiàn)以上提到的那些代理方