我想在我的应用程序和我的表格 View 单元格中启用“暗模式”功能,我正在像这样更改文本颜色
if ([FS isDarkModeEnabled]) {
cell.CATEGORY.textColor = [UIColor whiteColor];
cell.ORIGINUSER.textColor = [UIColor whiteColor];
cell.NUMFILES.textColor = [UIColor whiteColor];
cell.NUMTASKS.textColor = [UIColor whiteColor];
cell.SHARECOUNT.textColor = [UIColor whiteColor];
}
我想我会用 for 循环替换上面的代码,但是
for (id obj in [cell.contentView subviews]) {
if ([obj isKindOfClass:[UILabel class]]) {
NSLog(@"%@", ((UILabel *)obj).text);//<-- this spits out my storyboard placeholder text and not the acutal text for some reason.
[((UILabel *)obj) setTextColor:[UIColor greenColor]];
}
}
和
FSCategoriesTVCCell *cell2 = [self.tableView cellForRowAtIndexPath:indexPath];
for (UILabel *lbl in [cell2.contentView subviews]) {
[lbl setTextColor:[UIColor greenColor]];
}
但我无法让它工作。
以上所有代码都在-tableView:cellForRowAtIndexPath:
编辑以添加一些说明
我知道如何手动更改文本颜色,我想做的是遍历单元格的内容并通过 for 循环更改颜色,而不是通过声明每个标签并单独更改每个标签。
或者,简而言之,我想要一个 for
循环,而不是执行 cell.Label1.textColor = blah
最佳答案
当用户启用深色模式时,您必须通知 TableView 它应该更新单元格。为此,只需调用 tableView 的 [tableView reloadData]
方法。
关于ios - 如何在运行时以编程方式更改 UITableViewCells 文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38231801/