我有一個集合視圖和一些其他資料作為表格視圖單元的一部分。 集合視圖單元格是可選擇的,以確保對一個專案的單一選擇。 現在的用例是我需要進行一個API呼叫,以重繪 單元格的資料。在API被獲取后,我通過以下方式重新加載表視圖單元格:
tableView.reloadRows(at: [indexPath], with: .automatic)
問題是重新加載表視圖也會失去集合視圖單元格的選擇狀態。 是否有任何方法可以保留選定狀態或在不重新加載集合視圖的情況下重新加載單元格?
任何人有想法,請幫助。
uj5u.com熱心網友回復:
我能想到的最簡單的方案是使用帶有compositionalLayout的UICollectionView來代替你的tableView,并保存選定的專案索引。
另一個選項是在你的tableView dataSource中保存collectionView物件的選定狀態,即假設你有一個專案串列(型別A)構建你的tableView單元,其中一個有一個專案串列(型別B)構建collectionView單元,當你選擇一個專案(型別B)時,在外部串列(型別A的專案)中更新該專案
當獲取新的結果時,確保在替換前從當前的結果中更新所選擇的狀態。
uj5u.com熱心網友回復:
我的想法是使用一個變數。而每次你點擊單元格,你都會將indexPath更新為變數。
我的想法是使用一個變數。
var clickCell: IndexPath?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
clickCell = indexPath // update value。
}
并且在重新加載表視圖后,添加以下代碼
if let index = clickCell {
tableView.selectRow(at: index, animated: true, scrollPosition: .none)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/311710.html
標籤:
