2011-12-22 13 views
0

私はテーブルビューを持っており、1つのセルを選択するとそのセルのバックグループの色を変更して選択した行を識別します。テーブルビューをリロードするとセルの背景色が変わらない

私の問題は、次のとおりです。私は次の行を選択したときに、私はこの時点で私は、そのセルの背景色を変更することができません、テーブルビューを再ロードしています。

私はcellForRowAtIndexPath:方法に以下のコードを書いた:

if (m_selectedCell == indexPath.row) { 
    [cell setBackgroundColor:[UIColor redColor]]; 
} 

誰もがこの上で助けてくださいことはできますか?

答えて

1

は自分のコードを書く:あなたはこのループの外に上記のコードを記述する必要が

if (m_selectedCell == indexPath.row) { 
[cell setBackgroundColor:[UIColor redColor]]; 
} 
0

このコードはDidSelectRowIndexPath自体で試してみてください。あなたはセルを返す前に

[cell setSelectionStyle:UITableViewCellSelectionStyleBlue]; 
+0

おかげで、私はビューよりも、一つのセルを選択すると、ここで、次のセルを選択するために、私は、セルをクリックしていないですDidSelectRowIndexPath方法でこのコードを試して、私は行くことにスワイプしていますその次のビューから、次のビューに起こっています次のセルに、一度私はスワイプしている私は選択したセルの背景色を変更する私の最初のビューをリロードしています。 –

+0

テーブルビューのセルを選択したときに背景色を変更したい場合は、didselectRowIndexPathを指定する必要があります。セルをクリックすると、ナビゲートされているかどうかわかりません。 – Rizvan

+0

はい、移動していますが、初めてDidSelectRowメソッドが呼び出され、2回目に別のビューから操作していて、最初のビューをリロードしようとしています –

0

あなたはcellForRowAtIndexメソッドで、このコードを書くif(cell==nil)

1

と呼ばれます。また、m_selectedCell assignsまたはnilをチェックしますか?

値が一致する場合、セルに背景色のUIImageViewを追加します。

1

多分あなたは、セルの背景色は-tableView:willDisplayCell:forRowAtIndexPath:デリゲートメソッドで実行する必要がある変更この

cell.textLabel.backgroundColor = [UIColor clearColor]; 
1

を試すことができます。このメッセージは、セルの作成後、画面上に描画される前に送信されます。お返事を

+0

これは正解です –

関連する問題