2011-01-27 6 views
1

私はUITableViewCellsのカスタムサブクラスのセットを使用するUITableViewControllerのカスタムサブクラスを持っています。UITableViewCellは選択解除後にプロパティを失います

あまりにも派手なことはありません。表のセルには、コンテンツビューに2つのサブビューがあります。

現在、私はユーザーがセルを選択していますが、ナビゲーションコントローラはカラー選択画面にプッシュします。ユーザが色を選択する。すばらしいです。テーブルビューは、このビューのデリゲートです。色を受け取り、サブビューがこの背景色を使用するように選択したセルを更新し、ナビゲーションコントローラから現在のビューをポップします。

すべて動作します! tableViewControllerがスライドして表示され、セル内のインジケータにユーザが選択した背景色が表示されるようになりました。しかし、テーブルビューが表示された後、選択されたセルのセルには青色のハイライトが自動的に適用されます。これは、TableViewControllerの魔法のものです。それは素晴らしいですが、それは私のセルのインジケータステータスをリセットしています。

問題は、私はこの新しい色にセルを正しく更新する場所を見つけることができません。色は、tableViewControllerにivarとして格納されます。

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

しかし、この方法は、魔法のUIKitの結果として発生しません悲しいかな簡単にセルを強調表示するためにやっている。だから私はでこれを試すと思いました。私のセルを正しく更新する必要があるアイデア?

答えて

0

どのように背景色を設定しているのかわかりませんが、UITableViewCellサブクラスのbackgroundViewプロパティを使用する必要があります。

someCell.backgroundView.backgroundColor = someColor; 

(あなたUITableViewController、またはどこの内側からあなたが戻ってあなたのピッカーからその色情報を取得しています)。

これを行うと、セルが選択状態から選択解除状態になるときに背景色がリセットされません。

関連する問題