Сгруппированная 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]];
}