2011-04-29 55 views
-3

每次滾動單元格時不應觸發重新加載。如何重用uitableviewcell?

+0

請詳細說明您的問題以及您的cellForRowAtIndexPath方法的郵政編碼 – Gypsa 2011-04-29 09:28:32

+0

如果您閱讀過該建議,請向下滾動以查看相應的代碼示例。 – Eiko 2011-04-29 10:00:46

回答

1

是的你是對的。我會詳細介紹一下Steven的蘋果文檔。

對於細胞不被重新加載,先看看這個方法:

TimeZoneCell *timeZoneCell = (TimeZoneCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

它說:「給我一個現有的視圖,它表示一個表格單元格」。這是一個很大的節約,因爲如果用戶快速向上或向下滾動,創建視圖可能會非常昂貴。

當然,如果一個單元尚未被創建,您就不能重新使用單元。所以,你需要處理這種情況。這就是這個代碼進來:

if (timeZoneCell == nil) { 
    timeZoneCell = [[[TimeZoneCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    timeZoneCell.frame = CGRectMake(0.0, 0.0, 320.0, ROW_HEIGHT); 
} 

它說,「?是細胞無」,即有我們尚未創建表格單元格?然後它繼續創建一個。該單元將隨後被重新使用。

單元格的實際內容會發生變化,例如標籤或其他內容。但是,您將繼續重新使用現有的對象。