Цвет фона UITableViewCell отличается в iOS5 от iOS4

Сгруппированная UITableViewCell использует цвет tableCellGroupedBackgroundColor вместо обычного цвета whiteColor, в iOS 5. В результате фон ваших пользовательских ячеек не совпадает с фоном ячеек UITableViewCell (ячейки стилей Default, Subtitle, Value1, Value2).

Как лучше всего сделать так, чтобы один и тот же цвет фона использовался в пользовательских UITableViewCell и стандартных UITableViewCell (и связанных с ними UILabel и других элементах) - w. как в iOS4, так и в iOS5?

Примечание: В редакторе я вижу новый цвет по имени tableCellGroupedBackgroundColor, но нет никакой категории/метода для получения этого цвета программно.

Редактировать:

Вы можете использовать следующую технику для изменения цвета фона элементов управления в ячейке, но в случае пользовательских ячеек, как вы можете установить соответствующий цвет фона в зависимости от ОС (iOS 4 против iOS 5)?

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

Самое простое решение (мое текущее реализованное):. Это просто гарантирует, что все мои ячейки имеют белый фон, независимо от ОС. Почему-то мне не нужно применять белый цвет к cell.contentView.subviews.

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    [cell setBackgroundColor:[UIColor whiteColor]];
}
5
задан Mustafa 28 October 2011 в 10:27
поделиться