2010-03-04 55 views
1

我目前這個問題所困擾: 我有一個顯示的tableView有不同的定製單元一個UITableViewController。IPhone自定義的UITableViewCell重裝

一個自定義單元顯示一個數字(通過標籤)。如果你點擊這個單元格,navigationController會移動到一個UIPicker,在這裏用戶可以選擇要顯示的數字。 如果用戶退回,單元格應顯示更新的值。

問題: 我設法通過調用

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self.tableView reloadData]; 
} 
中的UITableViewController

重新裝入電池。

這種方法只適用,如果我不使用dequeueReusableCellWithIdentifier的細胞(表不會否則顯示更新)。 但在這種情況下,內存使用量增長並增長... 此外,程序在大約15次移動到pickerView之後崩潰 - 我認爲應該重新加載的單元格已經發布。

如何在每次顯示視圖時更新可重複使用的自定義單元格? 什麼是最佳解決方案?

我想保留的細胞不應該使用?

+0

我有完全相同的問題;無論我做什麼,自定義UITableViewCell的子視圖不會刷新,如果修改時顯示它。當我滾動到它們時,不在視圖中的單元格是最新的。 – fraca7 2010-03-04 17:07:38

回答

0

有你的NIB設置相應的ID?它必須是一樣的,你使用電話dequeueReusableCellWithIdentifier:

見步驟3 here

1

一般的做法是,如果只有一個小區改變,以避免重新加載整個表時。

在這種情況下,只是讓你想「刷新」,並從主線程調用[self setNeedsDisplay]它來觸發其刷新(將調用其drawRect觸發其繪圖)的參考的UITableViewCell。