我有一個帶有可選行的表格視圖。 當我重新加載表視圖時,可能會添加(或刪除)一些新行,並且表視圖的單元格中的某些標籤可能會更改。這就是我想通過調用[tableView reloadData]
來實現的。在不清除選擇狀態的情況下重新加載表格視圖的數據
不幸的是,該方法也清除了表視圖的整個狀態 - 包括選擇。但我需要保持選擇。
那麼如何重新加載表格視圖中的所有數據,同時仍然保持選定的行選擇?
我有一個帶有可選行的表格視圖。 當我重新加載表視圖時,可能會添加(或刪除)一些新行,並且表視圖的單元格中的某些標籤可能會更改。這就是我想通過調用[tableView reloadData]
來實現的。在不清除選擇狀態的情況下重新加載表格視圖的數據
不幸的是,該方法也清除了表視圖的整個狀態 - 包括選擇。但我需要保持選擇。
那麼如何重新加載表格視圖中的所有數據,同時仍然保持選定的行選擇?
您可以存儲所選行的索引路徑有:
rowToSelect = [yourTableView indexPathForSelectedRow];
之前重新加載數據。並且在重新使用之後:
[yourTableView selectRowAtIndexPath:rowToSelect animated:YES scrollPosition:UITableViewScrollPositionNone];
JeroVallis解決方案適用於單選表視圖。 基於他的想法,這是我如何使它與多個選項一起工作:
NSArray *selectedIndexPaths = [self.tableView indexPathsForSelectedRows];
[tableView reloadData];
for (int i = 0; i < [selectedIndexPaths count]; i++) {
[tableView selectRowAtIndexPath:selectedIndexPaths[i] animated:NO scrollPosition:UITableViewScrollPositionNone];
}
完美的作品!謝謝! :) –
但這將再次爲每個先前選定的單元格調用DidselectRowAtIndexPath。並且會在用戶選擇一個單元格時觸發我編碼的操作。 – omarojo
非常簡單。謝謝! – Mischa