2011-12-14 83 views
1

一個UITableViewCell行是否有一種方式來獲得進入一個UITableViewCell當前未在屏幕上?我試圖更新當前不在視圖中的行。我在Apple的示例代碼之一中使用這個可摺疊/可展開的行作爲UITableView。我使用這個:獲取訪問當前沒有顯示

for (NSInteger row = 0; row < totalRows; row++) { 
    NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:section]; 
    OrderTableViewCell *cell = (OrderTableViewCell *)[_tableView cellForRowAtIndexPath:path]; 
    cell.CheckmarkButton.selected = YES; 
    cell.Symbol.isSelected = YES; 
} 

我totalRows是正確的,我從TableView中獲得的行數。所以我想我可以使用它,遍歷所有行,並設置一些值。但是,如果我檢查行的狀態,那麼當前屏幕上的值有值,我可以更改它們,但屏幕上的值爲空並且無法設置。有沒有辦法解決這個問題?謝謝。

回答

0

取決於你想要什麼更新你可以只更新後備集合中的第i個條目。

例如,你可以有一個存儲到CheckmarkButton選擇相應的bool的集合。在你的循環中,你可以設置myArray[row] = YES。在cellForRowAtIndexPath你可以做cell.CheckmarkButton.selected = myArray[indexPath.row]

如果要爲每個單元格維護多個項目,則上例中的myArray可能包含保存與第i個單元格相關的值的對象的實例。

0

那麼爲什麼你需要更新一個這樣的小區......如果小區是拿出來看,以節省內存的系統上卸載它,因爲它不是在視圖中有沒有必要爲你更新細胞直接,而你應該有狀態,當cellForRowIndexPath由表視圖稱爲加載電池所需的外觀顯示等方式來體現......你幾乎想要做你正在做的事情的唯一原因是,如果電池正在顯示,你需要更新單元格,爲用戶...即使這樣,你仍然可以設置你的狀態,並調用reloadRowsAtIndexPaths,而不是直接操縱單元格...希望可以幫助

+0

我試圖做一次檢查所有機制來檢查所有選定行。那只是我的思考過程,是讓行在行上設置一個屬性,所以當它顯示時,它會反映一個複選標記。你會用MrMusic推薦的嗎? – Crystal 2011-12-14 19:48:35

+0

是什麼mrmusic已經recommeneded是go..its我在這裏解釋的方式,但他有一個更具體的例子 – Daniel 2011-12-14 19:51:24

相關問題