Das Folgende funktioniert bei mir unter iOS 8.
Ich muss den Auswahlstil auf UITableViewCellSelectionStyleDefault
damit die benutzerdefinierte Hintergrundfarbe funktioniert. Wenn ein anderer Stil, wird die benutzerdefinierte Hintergrundfarbe ignoriert werden. Es scheint eine Änderung im Verhalten zu geben, da frühere Antworten stattdessen den Stil auf none setzen müssen.
Der vollständige Code für die Zelle lautet wie folgt:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// This is how you change the background color
cell.selectionStyle = UITableViewCellSelectionStyleDefault;
UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = [UIColor redColor];
[cell setSelectedBackgroundView:bgColorView];
return cell;
}