2012-01-16 43 views
1

我在每個單元格內都有一個按鈕。當它被按下時,圖像被改變(基本上是複選框)以表示選擇。當您滾動到底部時...然後向上滾動到頂部。圖像被還原爲原始圖像。滾動時,圖像恢復爲原始狀態uitableview

這個問題是非常相似的:

Preserve Cell Image After Scrolling UITableView

和其他人。但是,我似乎無法找到一個好的答案。我明白這是它迴歸到當細胞離開屏幕時如何設置uitableview。但是,如何將更改後的圖像保存到uitableview中,以便它在滾動時不會還原爲原始圖像?

在此先感謝! =)

回答

4

它正在改回,因爲單元格被重用。當您的單元格離開屏幕時,它將從視圖中移出並放回到重用池中。然後,您在cellForRowAtIndexPath中再次將其從隊列中取出,並將其設置爲默認值。

您鏈接的問題正是您應該遵循的。你應該把你的單元格的狀態存儲在你的視圖控制器中,然後當你在cellForRowAtIndexPath中重新設置它時,你應該加載該狀態並適當地設置單元格。

您的方法的一個簡單方法是將NSArray設置爲與您表中的行數相同的大小,然後爲每個包含布爾值的行存儲NSNumber或關閉您的選擇狀態。當用戶切換時,切換數組中的值,然後在cellForRowAtIndexPath中讀取該值並進行適當設置。

+0

啊啊... NSArray的做法非常有意義。謝謝! – TheTC

0

我假設您的表格視圖單元格中的複選框正在將狀態更改爲選定狀態,因爲用戶選擇了它。您不應該使用UI元素來維護您的應用的狀態。也就是說,當用戶點擊複選框時,您應該使用該事件以某種方式反映應用程序中數據對象的狀態更改。然後,當該單元格需要再次顯示時,可以使用之前保存的狀態對其進行配置。這允許諸如細胞再利用和查看卸載等全面的好習慣。

相關問題