2011-07-08 28 views
5

プレーンスタイルのUITableViewでカスタムUITableViewCellの背景色を変更しようとしています。プレーンスタイルのUITableViewでカスタムUITableViewCellセルの背景色を変更する

私は他の同様の質問を読んで、私は私のデリゲートメソッドで:

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 

私はcell.backgroundColor = [UIColor...]を設定します。この問題は、グループ化されたスタイルUITableViewに対してのみ有効です。

注:これをプログラムで行い、.xibファイルではない理由は、異なるセルの背景色が異なるためです。

+0

は、コンテンツビューのためのバックグラウンドの色を変更してみてください。 cell.contentView.backGroundColor = [UIColor ...]; – Dinakar

+0

私はココアタグを追加しませんでしたか? – petert

答えて

8

色を設定する前に、おそらくcell.contentView.backgroundColor = [UIColor clearColor]を追加することができます。

なぜなら、バックグラウンドビューは下部にあるからです。 contentviewは一番上にあります。この変更のような

+0

それはトリックでした、ありがとう。 cell.backgroundColorとcell.contentView.backgroundColorの違いは何ですか? –

+1

セルには2つのレイヤーがあります.1つはbackgroundviewです。もう1つはcontentviewです。backgroundview.Ifでアップルが覚えているボタンがいくつかあります。バックグラウンドビューにあります – Bonny

+0

申し訳ありませんが、詳しく見ると、うまくいきませんでした。私はcell.contentView.backgroundColorを私が直接望んでいた色に設定しました。だからあなたの答えを変えてください。ありがとうございました –

0
// set selection color 
UIView *myBackView = [[UIView alloc] initWithFrame:cell.frame]; 

myBackView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:0.75 alpha:1]; 

[cell.contentView addSubview:myBackView]; 

[myBackView release]; 

すべてのセルUは、次のデリゲートメソッドで色

1

の変更を必要に応じて:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (...){ 
     cell.backgroundColor = [UIColor blueColor]; 
    } else { 
     cell.backgroundColor = [UIColor whiteColor]; 
    } 
} 
関連する問題