iOS 高效的分頁(yè)加載實(shí)現(xiàn)示例
今天在review代碼的時(shí)候發(fā)現(xiàn)之前的tableview 和 collectview 的分頁(yè)加載邏輯還有優(yōu)化的余地,于是進(jìn)行了優(yōu)化。
一、tableview的分頁(yè)加載的代碼對(duì)比
沒(méi)有優(yōu)化之前的代碼如下:
[strongSelf.tableView.mj_footer endRefreshing];
[strongSelf.articleArr addObjectsFromArray:feedList];
[strongSelf.tableView reloadData];
優(yōu)化之后的代碼如下:
NSMutableArray *indexPaths = [NSMutableArray array];
[feedList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:(strongSelf.articleArr.count + idx) inSection:0];
[indexPaths addObject:indexPath];
}];
[strongSelf.tableView.mj_footer endRefreshing];
[strongSelf.articleArr addObjectsFromArray:feedList];
[strongSelf.tableView beginUpdates];
[strongSelf.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
[strongSelf.tableView endUpdates];
二、collectonview的分頁(yè)加載的代碼對(duì)比
沒(méi)有優(yōu)化之前的代碼如下:
[strongSelf.feedList addObjectsFromArray:feedList];
if (feedList.count < kPageSize) {
[strongSelf.collectionView.mj_footer endRefreshingWithNoMoreData];
}else{
[strongSelf.collectionView.mj_footer resetNoMoreData];
}
[strongSelf.collectionView reloadData];
優(yōu)化之后的代碼如下:
NSMutableArray *indexPaths = [NSMutableArray array];
[feedList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[indexPaths addObject:[NSIndexPath indexPathForItem:(strongSelf.feedList.count + idx) inSection:0]];
}];
[strongSelf.feedList addObjectsFromArray:feedList];
if (feedList.count < kPageSize) {
[strongSelf.collectionView.mj_footer endRefreshingWithNoMoreData];
}else{
[strongSelf.collectionView.mj_footer resetNoMoreData];
}
[strongSelf.collectionView insertItemsAtIndexPaths:indexPaths];
總結(jié):相比較之下,優(yōu)化之后看似代碼量增加了少許,但是從理論上分頁(yè)加載的性能更好了。之前分頁(yè)加載使用的全局刷新,優(yōu)化之后改用了局部刷新。從而性能得到提升。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Objective-C實(shí)現(xiàn)身份證驗(yàn)證的方法示例
這篇文章主要給大家分享了Objective-C實(shí)現(xiàn)身份證驗(yàn)證的方法,文中給出了詳細(xì)的示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03
iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼
如果你剛剛拍攝了圖片,在使用微信/QQ發(fā)生消息時(shí)會(huì)顯示“你可能要發(fā)送的圖片”,這個(gè)功能非常人性化,怎么實(shí)現(xiàn)的呢?下面小編給大家分享iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼,一起看看吧2017-03-03
IOS 手勢(shì)操作詳解及實(shí)例總結(jié)篇
這篇文章主要介紹了IOS 手勢(shì)操作詳解及實(shí)例總結(jié)篇的相關(guān)資料,需要的朋友可以參考下2017-01-01
iOS App開(kāi)發(fā)中UITextField組件的常用屬性小結(jié)
這篇文章主要介紹了iOS App開(kāi)發(fā)中UITextField組件的常用屬性小結(jié),文中還介紹了UITextField隱藏鍵盤(pán)及為內(nèi)容增加校驗(yàn)的兩個(gè)使用技巧,需要的朋友可以參考下2016-04-04
IOS開(kāi)發(fā)中加載大量網(wǎng)絡(luò)圖片優(yōu)化方法
這篇文章主要介紹了IOS開(kāi)發(fā)中加載大量網(wǎng)絡(luò)圖片如何優(yōu)化的相關(guān)資料,需要的朋友可以參考下2017-03-03
解決Charles抓包https時(shí),無(wú)法查看CONNECT請(qǐng)求的問(wèn)題
下面小編就為大家分享一篇解決Charles抓包https時(shí),無(wú)法查看CONNECT請(qǐng)求的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01

