2011-01-27 76 views
1

我有一個UITableViewController的自定義子類,它使用了一組UITableViewCells的自定義子類。UITableViewCell在取消選擇後失去屬性

沒有什麼太花哨。表格單元格在其內容視圖中有兩個子視圖。

現在我有用戶選擇一個單元格,導航控制器會推到一個顏色選擇屏幕。用戶選擇一種顏色。大。表視圖是此視圖的代表。它接收顏色,更新所選單元格,以便子視圖現在使用此背景顏色,然後從導航控制器中彈出當前視圖。

這一切正常! tableViewController滑入視圖中,單元格中的指示器現在顯示用戶選擇的背景顏色。但在表格視圖出現後,單元格選定的單元格會自動應用藍色突出顯示。這是來自TableViewController的一些魔術。這很好,但它重置了我的手機的指示狀態。

問題是,我無法找到正確更新單元格到這種新顏色的位置。顏色在tableViewController中以ivar的形式存儲。所以我想在嘗試了這一點:

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath 

但可惜這種方法不火的神奇的UIKit的結果做簡要高亮顯示該單元。任何想法,我需要正確更新我的細胞?

回答

0

我不確定您是如何設置背景顏色的,但您應該使用UITableViewCell子類的backgroundView屬性。

someCell.backgroundView.backgroundColor = someColor; 

(從UITableViewController,或任何內您獲得的色彩信息從您選擇器背面)。

當單元格從選中狀態變爲取消選定狀態時,不應該重置背景顏色。

相關問題