cannot set background color of UITableViewCell in iOS6?

ios, ios-simulator, objective-c, uitableview

Solution

In iOS6 you need to change the cell's backgroundColor in willDisplayCell. This works in iOS7 as well, precluding the need for version-specific code.

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    [cell setBackgroundColor:[UIColor redColor]];
}

Problem

I started testing my app under simulator, because I don't have any iOS 6 device and stumbled upon weird problem. I cannot set backgroundColor property of UITableViewCell. If I st this: ``` cell.contentView.backgroundColor = [UIColor redColor]; ``` it is working only for iOS 6, when I use this: ``` cell.backgroundColor = [UIColor redColor]; ``` or this ``` [cell setBackgroundColor:[UIColor redColor]]; ``` it is working only for iOS7. When I use both `cell.contentView` and `cell.backgroundColor` it's working for both iOS... shouldn't it be one answer for such a 'easy' property? Or maybe it's some simulator bug? UPDATE: If it changes anything in the same tableview and cells I cannot set `accessoryType` neither via StoryBoard nor code... UPDATE2: for some reason setting tableview style to plain deleted all my changes, but grouped showed as expected...

Original source