Измените общий tintColor и размер шрифта UITableViewCellStyleValue2 textLabel в iOS 7

У меня есть Skinning модуль, в котором я определяю мое приложение в целом tintColor для общего использования в приложении:

+ (UIColor*)tintColor
{
    return [UIColor colorWithRed:0.26f green:0.41f blue:1.00f alpha:1.00f];
}

и я использую это, чтобы установить общий оттенок приложения:

[UIApplication sharedApplication].keyWindow.tintColor = [Skinning tintColor];

Но UITableViewCellStyleValue2Цвет `textLabel 'остался прежним. Так что я должен сделать:

cell.textLabel.textColor = [Skinning tintColor];

для каждой клетки.

Я полагаю, что нет единого способа установить это один раз, или есть?

У меня та же проблема для размера шрифта. По умолчанию это 15 пунктов, но в настройках iOS и т. Д. Они использовали системный шрифт из 18 пунктов.

1 ответ

Решение

У меня была такая же проблема и раньше, и я думаю, что лучшее решение - написать собственный подкласс UITableViewCell и настроить различные цвета textLabels в переопределенном конструкторе ячеек (например, – initWithStyle:reuseIdentifier:). Там же вы можете установить размеры шрифта.

Другой подход (который, кажется, не подходит в вашем случае) будет использовать UIAppearance прокси для меток, содержащихся в ячейках табличного представления, но тогда внешний вид будет установлен для каждого класса ячеек, каждой метки (основной и подробной), каждого стиля:

[[UILabel appearanceWhenContainedIn:[UITableViewCell class], nil] setTextColor:[Skinning tintColor]];

Кажется, нет никакого способа сделать это только для определенных стилей ячеек табличного представления.

Другие вопросы по тегам