Метод cell.contentView.backgroundColor = [UIColor colorWithRed...]
в ответе lostInTransit работает, если вы не используете встроенную метку UITableViewCell.
Я обнаружил, что если вы используете встроенную метку, например, установив cell.text
, вы получите непрозрачный белый блок под меткой, и только два конца ячейки показывают желаемый цвет.
Я не нашел способа отредактировать встроенную метку, чтобы она была непрозрачной (вы можете получить к ней доступ через UILabel* cellLabel = [cell.contentView.subviews objectAtIndex:0]
).
Я решил проблему, добавив свой собственный UILabel
. Как это:
UILabel* cellLabel = [[[UILabel alloc] initWithFrame:cell.frame] autorelease];
cellLabel.text = @"Test with non-opaque label";
cellLabel.backgroundColor = [UIColor clearColor];
cellLabel.opaque = NO;
[cell.contentView addSubview:cellLabel];
cell.contentView.backgroundColor = [UIColor darkGrayColor];