2012-05-23 88 views
3

我有一個UITableView自定義單元格,這些單元格包含一些文本字段。在這裏,當我在textFields中輸入一些數據,並且我滾動表格視圖數據時,它會消失,我認爲是因爲它每次創建新的單元格。UITableViewCell文本在滾動桌面視圖時消失數據

我解決了這個問題,通過使用數組並插入每個單元格,但是在這裏我無法重用單元格,所以我們浪費了內存。

你能告訴我完美的方式,我應該如何處理這種行爲?

回答

1

這聽起來好像有事情做與如何您正在使用tableView:cellForRowAtIndexPath:方法創建單元格。但是,如果沒有看到你的實現,我只能提出一般性建議(將你的實現添加到你的問題中,這樣人們可以對他們的答案更具體一些)。

如果你擔心內存中,然後通過下面的方式建立你的細胞使用UITableView's內置的單元複用功能:

NSString *identifier = @"reuseIdentifier"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease]; 
} 
cell.textLabel.text = @"text relating to index path"; 

以上將檢查tableView,看是否有重複使用任何可用的細胞。如果沒有,那麼將返回零。這是您使用initWithStyle:reuseIdentifier:方法創建單元格的方法,該方法將單元格標記爲在滾動出視圖時適合重用。這意味着您只能實例化最多一次可見的單元的總數,這將使您的表的內存佔用空間更好和更低。

注意,我們設置了電池的textField.text外的零檢查 - 這是保證,如果我們已經檢索到的可重複使用的電池,我們將覆蓋舊文本的內容與所傳遞到方法相關的indexPath文本內容。

5

使用一個數組來存儲每個文本字段的值,並設置所需的文本字段的值在

- (UITableViewCell *)tableView:(UITableView *)tTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

方法

相關問題