2010-09-13 103 views
0

我有一個自定義的UITableViewCell充當檢查列表。當用戶點擊所選項目時,它會從紅色變爲綠色,表示選擇,但隨着用戶向下滾動列表,一旦它們回到頂部,圖像就會變回默認的紅色值。滾動後保留細胞圖像UITableView

如何在tableview回收單元格時保留圖像的狀態?

謝謝

回答

1

聽起來就像您使用UITableViewCell s來存儲表格數據的狀態。這是錯誤的方法,因爲單元格被重用。你應該把狀態保存在一個單獨的'數據存儲'中。這可以只是一個數組,它保存在UITableViewController子類的內存中,或者像SQLite或Core Data一樣持久化。當表格視圖要求您輸入tableView:cellForRowAtIndexPath:時,此狀態會轉回單元格。

0

我有同樣的問題。用途:

MyTableViewCell* cell = [tableView dequeCellWithReuseIdentifier:@"MyTableViewCell"]; 
if (cell == nil) { /* create cell */ } 
/* and now you reset the properties of that cell */ 
cell.text = [myCellText objectAtIndex:indexPath.row]; 

這裏的關鍵是要重新取出的表格單元格的基礎上,indexPath屬性。這確實意味着您必須保持足夠的狀態來重新創建任何表格單元格 - ,包括您正在使用的圖像