当前位置:  开发笔记 > 编程语言 > 正文

在UITableViewCell中更改UILabel的背景颜色

如何解决《在UITableViewCell中更改UILabel的背景颜色》经验,为你挑选了2个好方法。

UITableViewCell是"预先构建的",UILabel是您初始化后的唯一子视图.我真的想改变所说标签的背景颜色,但无论我做什么,颜色都不会改变.有问题的代码:

UILabel* label = (UILabel*)[cell.contentView.subviews objectAtIndex:0];
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor darkGrayColor];
label.opaque = YES;

Ben Gottlieb.. 8

你的代码片段对我来说很好,但必须在将单元格添加到表格并显示之后完成,我相信.如果从中调用initWithFrame:reuseIdentifier:,则会出现异常,因为尚未创建UILabel 子视图.

可能最好的解决方案是添加您自己的UILabel,按照您的标准配置,而不是依赖于内置的这条(非常摇摇晃晃的)路径.



1> Ben Gottlieb..:

你的代码片段对我来说很好,但必须在将单元格添加到表格并显示之后完成,我相信.如果从中调用initWithFrame:reuseIdentifier:,则会出现异常,因为尚未创建UILabel 子视图.

可能最好的解决方案是添加您自己的UILabel,按照您的标准配置,而不是依赖于内置的这条(非常摇摇晃晃的)路径.



2> TomSwift..:

这不起作用,因为UITableViewCell在layoutSubviews方法中设置其标签backgroundColors.

如果要更改内置textLabel或detailTextLabel的颜色,请为UITableViewCell创建子类并覆盖layoutSubviews.调用超级实现,然后将backgroundColor属性更改为您想要的.

- (void) layoutSubviews
{   
     [super layoutSubviews];

     self.textLabel.backgroundColor = [UIColor redColor];
}

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有