ios UITableView封裝之下拉-上提-圖片異步加載

做過移動端開發(fā)的人都知道盐数,列表控件是最常用的控件之一。iOS里的列表控件是UITableView菠秒,其實Apple的開發(fā)人員對于UITableView的設(shè)計已經(jīng)夠好的了(簡單易用恶阴,擴展性非常強等等)淌山。

但對于展示邏輯單一的移動端系統(tǒng)軟件拯勉,你還是能感覺到有些繁瑣(或許是程序員天生就有些懶惰的毛病吧)竟趾。

來看看它到底繁瑣在哪兒了。首先宫峦,它的使用頻率太高了岔帽;第二,它通常不是只呈現(xiàn)一下數(shù)據(jù)就完事了导绷,一般都會跟隨下拉刷新犀勒、上提加載更多功能,當(dāng)然通常還要跟網(wǎng)絡(luò)下載數(shù)據(jù)诵次、圖片打交道账蓉;第三,MVC模式是ios開發(fā)的慣用模式逾一,隨之而來的是一大堆協(xié)議的實現(xiàn)(無論你是再寫一次也好,拷貝也罷肮雨,反正做這些工作都讓人覺得索然無味)遵堵。

沖著這些,今天就把UITableView常見的使用模式封裝了一下。具體做了以下幾件事:

1陌宿、? 內(nèi)嵌了下拉刷新(EGORefreshTableHeaderView)锡足、上提加載更多(LoadMoreTableFooterView)

2、? 內(nèi)置實現(xiàn)了UITableViewDataSource壳坪、UITableViewDelegate這兩個通常必須實現(xiàn)的協(xié)議舶得,對于自實現(xiàn)的邏輯以Block的形式對客戶代碼開放

3、? 內(nèi)置實現(xiàn)了1中提到的兩個組件的回調(diào)協(xié)議爽蝴,同上沐批,自實現(xiàn)的邏輯以Block的形式對外開放

4、? 內(nèi)置實現(xiàn)了EGORefreshTableHeaderView蝎亚、LoadMoreTableFooterView與UITableView交互必須實現(xiàn)的UIScrollViewDelegate協(xié)議

5九孩、? 內(nèi)置實現(xiàn)了異步圖片下載(可選)

代碼中包含了一個示例程序以及三個必備組件:

1、? EGORefreshTableHeaderView

2发框、? LoadMoreTableFooterView(修改版躺彬,原版不能適應(yīng)任何尺寸的高度)

3、? Apple官方提供的異步下載UITableView中的圖片的示例組件(IconDownLoader)梅惯,這個只適用于下載類似于社交網(wǎng)絡(luò)中的用戶頭像宪拥,不建議使用它來下載那些大圖片,因為它甚至都沒有緩存(如果圖片很大铣减,推薦使用SDImage)

代碼解讀

它已經(jīng)內(nèi)置實現(xiàn)了這些協(xié)議她君,所以在你使用它的時候,無需設(shè)置和實現(xiàn)徙歼。


對于不斷變化的業(yè)務(wù)邏輯犁河,這里提供了所有需要實現(xiàn)的block:


它們以屬性的形式對外公開:


對于上提加載更多、下拉刷新魄梯、圖片異步加載這幾個功能都是可選的桨螺,它們以組件的形式存在。比如,在實例化該controller的時候你就可以設(shè)置上提和下拉是否可用故源。而對于圖片下載蝠检,你只要不實現(xiàn)其相應(yīng)得block,它也不會對你造成額外的負(fù)擔(dān)肝箱。




ELTableViewController 的使用

創(chuàng)建一個新的controller繼承自:ELTableViewController;

override父類的initBlocks方法:



然后在ViewDidLoad中調(diào)用:


最后稀蟋,你在實例化該controller的時候煌张,可以指定是否使用上提和下拉



上圖為2017年最新的視頻教程資料,搜索2352149755加我好友私聊我上傳視頻教程退客,有什么不懂的也可以來私聊問我骏融。

不定時更新中链嘀。

如果你能明白這些視頻資料的好差,那么你也算是入行了档玻,底層和中高層就是這一步之差怀泊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市误趴,隨后出現(xiàn)的幾起案子霹琼,更是在濱河造成了極大的恐慌,老刑警劉巖凉当,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枣申,死亡現(xiàn)場離奇詭異,居然都是意外死亡纤怒,警方通過查閱死者的電腦和手機糯而,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泊窘,“玉大人熄驼,你說我怎么就攤上這事『姹” “怎么了瓜贾?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長携悯。 經(jīng)常有香客問我祭芦,道長,這世上最難降的妖魔是什么憔鬼? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任龟劲,我火速辦了婚禮,結(jié)果婚禮上轴或,老公的妹妹穿的比我還像新娘昌跌。我一直安慰自己,他們只是感情好照雁,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布蚕愤。 她就那樣靜靜地躺著,像睡著了一般饺蚊。 火紅的嫁衣襯著肌膚如雪萍诱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天污呼,我揣著相機與錄音裕坊,去河邊找鬼。 笑死燕酷,一個胖子當(dāng)著我的面吹牛碍庵,可吹牛的內(nèi)容都是我干的映企。 我是一名探鬼主播悟狱,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼静浴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挤渐?” 一聲冷哼從身側(cè)響起苹享,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浴麻,沒想到半個月后得问,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡软免,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年宫纬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膏萧。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡漓骚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出榛泛,到底是詐尸還是另有隱情蝌蹂,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布曹锨,位于F島的核電站孤个,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沛简。R本人自食惡果不足惜齐鲤,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望椒楣。 院中可真熱鬧给郊,春花似錦、人聲如沸撒顿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凤壁。三九已至吩屹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拧抖,已是汗流浹背煤搜。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唧席,地道東北人擦盾。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓嘲驾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親迹卢。 傳聞我的和親對象是個殘疾皇子辽故,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容