ios - 如何在运行时以编程方式更改 UITableViewCells 文本颜色

标签 ios objective-c uitableview

我想在我的应用程序和我的表格 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/

相关文章:

ios - Monotouch 中的 DequeueReusableCell 导致单元格在滚动时重新排列

ios - 如何在 tableview Custom Cell 上为 UIView 的左上角和右上角设置圆角半径?

ios - 如何实现类似于 Facebook 或 Instagram 的新闻评论页面

objective-c - 如何一次关闭 3 个模态视图 Controller ?

ios - Swift 3 如何使用单元格对象数据到另一个viewController

android - Xamarin android、Xamarin iOS 和 Xamarin 跨平台项目之间的区别

iphone - 有没有一种方法可以在不必手动编写 setter 和 getter 的情况下对原子属性进行延迟初始化?

android - 谷歌地图 flutter : I am getting black screen before loading maps

objective-c - 插入 NSManagedObject 已经实例化的核心数据

objective-c - 处理日期