我正在为应用程序的黑暗模式工作。有一个切换的基本前提允许用户在黑暗模式和光照模式之间切换。全局更新全部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
在每个表格基础上做到这一点,但我希望已在应用程序中加载EVERY TABLEVIEW以重新加载。这可能吗?
挖成'UIAppearance'类 –
用'UIAppearance'是标签的问题。例如,单元格可能包含textLabel和detailLabel,它们通常不应该是相同的颜色。我不认为UIA外观可以帮助解决这个问题。 – Kyle
您可以创建符合UIAppearance的UITableViewCell的自己的子类,并使用UI_APPEARANCE_SELECTOR标记自定义设置器。 –