用willDisplayCell改变TableViewCell颜色

举个自己亲身经历的例子,一次为了改变UITableViewCell的颜色,开始时直接改变cell的backgroundColor,但发现搞不定,一番搜索后发现改变cell的ContenView的backgroundColor就OK了,不过一旦显示accessoryView就露馅了。于是乎干的彻底点,直接自定义一个UITableViewCell,并用一个UIImageView做背景,现在终于可以“为所欲为”了。不过回想下,怎么简单的一个问题如此大动干戈,真是不值当,所以心里会暗暗骂下Apple的工程师,怎么就不让cell的backgroundColor起作用呢?这么明显的bug!以至于以后的一段时间我就习惯用那“土办法”,而且是屡试不爽。突然有天在stackoverflow上看到一个类似问题的讨论,原来这种问题可以通过重写-tableView:willDisplayCell:forRowAtIndexPath:的委托方法实现。想想之前骂过的话以及走过的弯路,只能感叹自己掌握不深入。有了这样的经历后在遇到类似的问题我会先怀疑使用合理,而不是轻易下结论。

- (void)tableView: (UITableView*)tableView

  willDisplayCell: (UITableViewCell*)cell

forRowAtIndexPath: (NSIndexPath*)indexPath

{

    cell.backgroundColor = indexPath.row % 2

    

    ? [UIColor colorWithRed: 234/255.0f green: 235/255.0f blue: 239/255.0f alpha: 1.0]

    

    : [UIColor colorWithRed: 226/255.0f green: 226/255.0f blue: 232/255.0f alpha: 1.0];

    

    cell.textLabel.backgroundColor = [UIColor clearColor];

    

    cell.detailTextLabel.backgroundColor = [UIColor clearColor];

    

}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值