Я работаю над темным режимом для приложения. Основная предпосылка для переключения, позволяющая пользователям переключаться между темным и световой режимами.глобально обновить все uitableviewcell
Я пытаюсь найти лучший способ обновить все UITableViewCell's
. IE в «светлом режиме» цвет фона ячеек является белым, а темный цвет фона ячеек темным.
В настоящее время я достичь этого с помощью
- (void) tableView: (UITableView *) tableView
willDisplayCell: (UITableViewCell *) cell
forRowAtIndexPath: (NSIndexPath *) indexPath
{
if(darkMode)
{
cell.backgroundColor = darkBackground;
cell.textLabel.textColor = darkTextColor;
}
else
{
cell.backgroundColor = lightBackground;
cell.textLabel.textColor = lightTextColor;
}
} // End of tableView:willDisplayCell:forRowAtIndexPath:
Проблема заключается в том, когда пользователь переключается из темного/света я хочу, чтобы все ячейки перерисовывать так, что фон обновляются. Я могу сделать это на основе таблицы, вызвав отдельного пользователя uitableview
reloaddata
, но я хочу, чтобы в приложение было загружено КАЖДОЕ табличное представление, загруженное в приложение. Это возможно?
копаться в 'UIAppearance' класса –
Проблема с' UIAppearance' это метки. Например, ячейка может содержать как textLabel, так и detailLabel, которые обычно не должны быть одного цвета. Я не верю, что UIAppearance может помочь в этом. – Kyle
Вы можете создать свой собственный подкласс UITableViewCell, который соответствует UIAppearance и пометить пользовательский сеттер с помощью UI_APPEARANCE_SELECTOR. –