2012-09-07 36 views
0

我正在開發一個表示巨大的使用的UITableView用自定義的UITableViewCell數據量的應用程序。UITableView的可重複使用的細胞或不

當的tableView被設置爲編輯模式時,它支持所選擇的一組數據的進一步使用多個選擇。

使用-tableView:didSelectRowAtIndexPath:didDeselect我將行UIImageViews圖像更改爲一個小勾號並將選擇存儲到數組中。當選擇一個單元格時,它會獲得淺藍色背景(iOS標準)。

當我現在再次向下滾動時,單元格背景仍爲淺藍色,但圖像被重置爲默認值,單元格isSelected屬性爲NO。再次選擇它將調用-tableView:didSelectRowAtIndexPath:方法。

一段時間調試事實證明,可重複使用的標識符是錯誤的之後。但是當我糾正它時,一遍一遍地重複同樣的12個單元格。 isSelected屬性仍然重置爲NO

我如何保持選定的行而滾動的tableView?並且:爲什麼單元格藍色突出顯示(或標記爲選中),但isSelected屬性重置爲No

感謝您的幫助,以親切的問候,朱利安

回答

0

不要使用電池來保持持續的控制器狀態。請保留NSArray並將每個選定單元格的NSIndexPath添加到您的數組(並在用戶取消選擇單元格時刪除它們)。

然後在cellForRowAtIndexPath:只是確保你正確配置基於其索引路徑是否是您選定的單元格數組中的單元格。

+0

我實際上有與所選擇的行的indexPaths陣列。其中一個問題是電池單獨保持淡藍色「選擇的顏色」。我無法控制它... –

+0

你是否調用了'deselectRowAtIndexPath:'你想停止出現的選擇? – aroth

+0

是的,我是。問題在於單元格似乎被選中,但單擊它們會調用'didSelectRowAtIndexPath'方法。 –