需求
利用閑下來的這段時(shí)間,對(duì)之前的工作稍微整理一下.
首先拿到公司項(xiàng)目的UI,大多數(shù)的頁面都是table頁面,并且數(shù)目很龐大,不論開發(fā)周期的長短,如果每一個(gè)頁面都要把tableView的<UITableViewDataSource>,<UITableViewDelegate>方法都重復(fù)的實(shí)現(xiàn),ViewController無疑會(huì)變?yōu)樘幚韙able的垃圾桶.
UICollectionView同樣適用.
git傳送門:demo在這里???
進(jìn)入正題
UITableViewDataSource和UITableViewDelegate方法很多,什么值得封裝?
1,tableView_required的兩個(gè)方法,cellForRowAtIndexPath,numberOfRowsInSection一定要搞的
2.didSelectRowAtIndexPath點(diǎn)擊處理也是必然要用到的,heightForRowAtIndexPath配合市場上的自適應(yīng)cell高度的三方那是相當(dāng)給力(定高的table不建議用,table.rowHeight能解決的問題沒必要再招來麻煩)
3.拿最常規(guī)的table頁面來說,多section或者多cell,定制header和footer,還有title很少遇到,個(gè)人覺得還是簡單的來比較好.(不是不能做,游戲規(guī)則自己定,只是略顯累贅)
上代碼
第一步:需要的block,甚至不需要cell,model的傳值
,后面會(huì)有介紹
第二步:初始化,這里可以根據(jù)頁面的需要程度進(jìn)行選擇,對(duì)于極簡或者稍微復(fù)雜點(diǎn)的頁面(需要定制delegate多個(gè)方法),建議第一種,一般table頁果斷第二種.
第三步:目前為止還沒有數(shù)據(jù)源,通常數(shù)據(jù)源都是請(qǐng)求到的數(shù)據(jù),放在init里面只能傳nil,很多余,不如直接了當(dāng)?shù)淖芳訑?shù)據(jù)源.初始化既然都能細(xì)分有無delegate的回調(diào),肯定要有相應(yīng)的授權(quán),需要我干什么我才干什么...
方法實(shí)現(xiàn):
1.初始化
2.數(shù)據(jù)源處理,授權(quán)處理
3.dataSource,在這里cell直接可以performSelector配置cell,就不需要controller再做操作
4.delegate,對(duì)delegate有高要求的頁面,我這只是拋磚引玉
5.UICollectionView異曲同工
應(yīng)用如下
1.只處理dataSource,cell回調(diào)甚至不用寫...
2.連帶delegate的初始化