不同的细胞bg颜色取决于iOS版本(4.0到5.0)

yan*_*nis 9 uitableview ios ios5

我有一个自定义分组的UITableViewCell,上面有几个UILabel.由于UITableViewCell背景颜色曾经是纯白色,因此它与UILabels的默认背景颜色相匹配,因此UILabel框不可见.

更新到iOS 5.0后,我注意到,现在分组UITableViewCells默认的背景色是一种更灰白色(实际上#f7f7f7),以及作为结果的UILabels'框架丑陋的方式是可见的..

那么,当需要在不同的iOS版本之间变化时,设置UILabels背景颜色的最佳方法是什么?我知道我可以使用opaque = NO和[UIColor clearColor],但出于性能原因,我更愿意绘制UILabels的背景.

gca*_*amp 4

在委托方法中tableView:willDisplayCell:UITableViewCell会将背景颜色设置为白色,或者在 iOS 5 中设置为灰色。

您可以更改所有子backgroundColor视图。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    for (UIView* view in cell.contentView.subviews) {
        view.backgroundColor = cell.backgroundColor;
    }
}
Run Code Online (Sandbox Code Playgroud)