2011年7月27日水曜日

UITableVIewのセルの色を変えたい

UITableViewのセルの色を変えたり、透過させたい、という比較的稀な(?)ことをやってみたいことがありますが、単純にbackgroundColorを指定しても反映されません。
独自のセルを用意した場合も同様で、いくらInterfaceBuilder上で色を設定してみてもテーブルに表示されるころには白くなっています。
これはUITableViewが強制的に色を統一してくるからです。

色を変えるためにはセルを描画する直前に呼ばれるtableView willDisplayCellをオーバーライドしてやります。


- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
 if (indexPath.row % 2) {
  cell.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9alpha:1.0];
 }
}

例えばこんな風にしてやれば一行おきにちょっと暗い色にできます。

0 件のコメント:

コメントを投稿