我有一個自定義的UITableViewCell充當檢查列表。當用戶點擊所選項目時,它會從紅色變爲綠色,表示選擇,但隨着用戶向下滾動列表,一旦它們回到頂部,圖像就會變回默認的紅色值。滾動後保留細胞圖像UITableView
如何在tableview回收單元格時保留圖像的狀態?
謝謝
我有一個自定義的UITableViewCell充當檢查列表。當用戶點擊所選項目時,它會從紅色變爲綠色,表示選擇,但隨着用戶向下滾動列表,一旦它們回到頂部,圖像就會變回默認的紅色值。滾動後保留細胞圖像UITableView
如何在tableview回收單元格時保留圖像的狀態?
謝謝
聽起來就像您使用UITableViewCell
s來存儲表格數據的狀態。這是錯誤的方法,因爲單元格被重用。你應該把狀態保存在一個單獨的'數據存儲'中。這可以只是一個數組,它保存在UITableViewController
子類的內存中,或者像SQLite或Core Data一樣持久化。當表格視圖要求您輸入tableView:cellForRowAtIndexPath:
時,此狀態會轉回單元格。
我有同樣的問題。用途:
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屬性。這確實意味着您必須保持足夠的狀態來重新創建任何表格單元格 - ,包括您正在使用的圖像。