iOS 8 自適應(yīng) Cell和cell重用問題

tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat

這個(gè)方法用于返回一個(gè) cell 的預(yù)估高度祠饺,如果在程序中實(shí)現(xiàn)了這個(gè)方法,tableview 首次加載的時(shí)候就不會調(diào)用heightForRowAtIndexPath
方法斥废,而是用estimatedHeightForRowAtIndexPath
返回的預(yù)估高度計(jì)算 tableview 的總高度厅贪,然后 tableview 就可以顯示出來了魔慷,等到 cell 可見的時(shí)候,再去調(diào)用heightForRowAtIndexPath
獲取 cell 的正確高度。

 通過使用   estimatedHeightForRowAtIndexPath

這個(gè) Delegate 方法记舆,解決了首次加載 table view 出現(xiàn)的性能問題。但還有一個(gè)麻煩的問題呼巴,就是在 cell 沒有被加載的時(shí)候計(jì)算 cell 的高度泽腮,上面給出的代碼中,僅僅是計(jì)算一個(gè) NSString 的高度衣赶,就需要不少代碼了诊赊。這種計(jì)算實(shí)際上是必須的,然而在 iOS 8 開始府瞄,你可能可以不用再寫這些煩人的計(jì)算代碼了碧磅!前提是你要會使用 storyboard。

在 iOS 8 中,self size cell 提供了這樣一種機(jī)制:cell 如果有一個(gè)確定的寬度/高度鲸郊,autolayout 會自動(dòng)根據(jù) cell 中的內(nèi)容計(jì)算出對應(yīng)的高度/寬度敲街。
請看:

*** iOS 8 自適應(yīng) Cell ***

.

2、 cell重用問題

官網(wǎng)是這樣子說的严望。

// if the cell is reusable (has a reuse identifier), this is called just before the cell is returned from the table view method dequeueReusableCellWithIdentifier:. If you override, you MUST call super.

- (void)prepareForReuse{ 
   [super prepareForReuse];
 }
*** 解決tableView滾動(dòng)導(dǎo)致數(shù)據(jù)混亂 準(zhǔn)備重用,防止?jié)L動(dòng)出現(xiàn)數(shù)據(jù)錯(cuò)亂 ,你可以在里面設(shè)置值為nil,例如:***
self.timeLineBill = nil; 
self.categoryImageBtn.imageView.image = nil;

在使用cell時(shí)作為網(wǎng)絡(luò),還需要在這里通知取消掉前一次網(wǎng)絡(luò)請求.不要再給這個(gè)cell發(fā)數(shù)據(jù)
多艇,下面的方法是可以簡單的根據(jù)identifier 進(jìn)行重用,數(shù)據(jù)復(fù)雜時(shí)就不可以了像吻。

static NSString *CellIdentifier = @"Identifier";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
   cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末峻黍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拨匆,更是在濱河造成了極大的恐慌姆涩,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惭每,死亡現(xiàn)場離奇詭異骨饿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)台腥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門宏赘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人黎侈,你說我怎么就攤上這事察署。” “怎么了峻汉?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵贴汪,是天一觀的道長。 經(jīng)常有香客問我休吠,道長扳埂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任瘤礁,我火速辦了婚禮阳懂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蔚携。我一直安慰自己希太,他們只是感情好克饶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布酝蜒。 她就那樣靜靜地躺著,像睡著了一般矾湃。 火紅的嫁衣襯著肌膚如雪亡脑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機(jī)與錄音霉咨,去河邊找鬼蛙紫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛途戒,可吹牛的內(nèi)容都是我干的坑傅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼喷斋,長吁一口氣:“原來是場噩夢啊……” “哼唁毒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起星爪,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤浆西,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后顽腾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體近零,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年抄肖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了久信。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡漓摩,死狀恐怖入篮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情幌甘,我是刑警寧澤潮售,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站锅风,受9級特大地震影響酥诽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜皱埠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一肮帐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧边器,春花似錦训枢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至砚嘴,卻和暖如春十酣,著一層夾襖步出監(jiān)牢的瞬間涩拙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工耸采, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兴泥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓虾宇,卻偏偏與公主長得像搓彻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子嘱朽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

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