IOS開發之因Cell重用導致控制項的狀態級聯改變

2021-07-24 02:18:57 字數 867 閱讀 7685

乙個專案中由於要使用checbox,但是ios的提供的控制項中並沒有checkbox,因此專案中使用了乙個vkcheckbox的第三方框架,這個框架本身很好用,效果也非常的好!

例如:你選中了第乙個cell的checkbox,假設第5個cell是重用的第乙個,那麼第5個cell也會是被選中的狀態,想了好久試了好多辦法也沒有乙個特別的效率高的辦法,最後選擇了乙個方法,解決思路如下:

建立乙個全域性的字典,然後key是cell的indexpath.item,注意這裡要轉成sting型別,value就是checkbox的狀態0或1.重新整理介面的時候根據字典裡的狀態來重新設定每個checkbox的狀態。我是在

func collectionview(collectionview: uicollectionview, cellforitematindexpath indexpath: nsindexpath) -> uicollectionviewcell
中新增的這個方法,就是在返回cell之前設定的具體的**如下:

let item = string(indexpath.item)

///初始化這個字典,若去出來的資料為nil則證明這個checkbook的狀態沒有被初始化

if(self.checkboxarray[item] == nil)

print("item=\(indexpath.item)=\(self.checkboxarray[item])")

switch self.checkboxarray[item]!

checkbox.checkboxvaluechangedblock = else

}

感覺不是特別的有效率,但是確實解決了這個問題!

IOS開發之 UITableView重用機制

對table view的資料進行繫結,即填充cell,自動呼叫n次 uitableviewcell tableview uitableview tableview cellforrowatindexpath nsindexpath indexpath cell.text soundsignature...

ios之清除cell快取,解決cell的重用問題。

原文 tableview 中的cell有重用機制,這是乙個很好的東西,可以避免開闢很多的空間記憶體。但是有時候我們不想讓它重用cell,可以用以下的 解決。將這個 放在 uitableviewcell tableview uitableview tableview cellforrowatindex...

iOS開發筆記 tableview重用問題

前陣子載入系統內建相簿,發現相簿多了以後,拉動table,很多都會出現重複的現象,排查 發現,自己在cellforrowatindexpath裡面,每次都會alloc一次顯示的imageview,不去判斷這個imageview是否存在。只需要先判斷一下這個imageview是否已經存在。講得不到位的...