iOS開(kāi)發(fā)—UITableView刷新

爪機(jī)碼字,不規(guī)范,見(jiàn)諒,手機(jī)上看到了,轉(zhuǎn)來(lái)保存,寫的很詳細(xì)。原文見(jiàn)豆瓣

http://www.douban.com/group/topic/80718778/


在很多APP界面都用到的UITableView,對(duì)iOS開(kāi)發(fā)者來(lái)說(shuō)一定不陌生吧。網(wǎng)上關(guān)于UITableView的文章早已多不勝數(shù),尤其是關(guān)于UITableView優(yōu)化方面的,對(duì)開(kāi)發(fā)者來(lái)說(shuō)非常值得一看。

現(xiàn)在就來(lái)看看,刷新UITableView該怎么做吧,一般情況下,我們會(huì)通過(guò)直接調(diào)用reloadData的方法,去刷新UITableView的。

刷新UITableView

[self.tableView reloadData];

reloadData是刷新整個(gè)UITableView,有時(shí)候,我們可能需要局部刷新。比如:只刷新一個(gè)cell、只刷新一個(gè)section等等。這個(gè)時(shí)候在調(diào)用reloadData方法,雖然用戶看不出來(lái),但是有些浪費(fèi)資源。

刷新局部cell

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];

[self.tableViewreloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil]

withRowAnimation:UITableViewRowAnimationFade];

這是刷新第一個(gè)section的第一個(gè)cell很方便的一種方法,雖然看上去,代碼變多了,但是很節(jié)省資源,盡量減少刷新頻率,這也是在iOS開(kāi)發(fā)中對(duì)UITableView的一種優(yōu)化。

局部刷新section

NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndex:0];

[self.tableView reloadSections:indexSet

withRowAnimation:UITableViewRowAnimationFade];

上面這段代碼是刷新第0個(gè)section。

刷新動(dòng)畫

刷新UITableView還有幾個(gè)動(dòng)畫:

typedef NS_ENUM(NSInteger, UITableViewRowAnimation) {

UITableViewRowAnimationFade, //淡入淡出

UITableViewRowAnimationRight, //從右滑入 // slide in from right (or out to right)

UITableViewRowAnimationLeft, //從左滑入

UITableViewRowAnimationTop, //從上滑入

UITableViewRowAnimationBottom, //從下滑入

UITableViewRowAnimationNone, // available in iOS 3.0

UITableViewRowAnimationMiddle, // available in iOS 3.2. attempts to keep cell centered in the space it will/did occupy

UITableViewRowAnimationAutomatic = 100 // available in iOS 5.0. chooses an appropriate animation style for you

};

以上便是在iOS開(kāi)發(fā)中,刷新UITableView的幾個(gè)小技巧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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