如何自定义UITableViewCell中标准标签的背景颜色?

问题描述:

我在过去的几个小时想弄清楚如何做到这一点,但没有运气。搜索Google时有几种可能的解决方案,但似乎没有任何效果。如何自定义UITableViewCell中标准标签的背景颜色?

我想自定义UITableViewCell中的标准UILabel的背景颜色(因为我已经自定义了单元格本身的背景颜色),但我没有做任何事似乎工作。

我创造我自己的UILabel自定义颜色-tableView:的cellForRowAtIndexPath:

UILabel* label = [[[UILabel alloc] init] autorelease]; 
label.textColor = [UIColor blueColor]; 
label.backgroundColor = [UIColor redColor]; 
label.opaque = YES; 
[cell.contentView addSubview:label]; 
cell.text = @"Sample text here"; 

但是,这并不工作,产生的表视图仍具有与黑色标签一堆细胞文本和白色背景。

任何线索我在做什么错在这里?

更新:如果我尝试做的,而不是执行以下操作:

UILabel* label = [[[UILabel alloc] init] autorelease]; 
label.textColor = [UIColor blueColor]; 
label.backgroundColor = [UIColor redColor]; 
label.opaque = YES; 
[cell.contentView addSubview:label]; 
label.text = @"Sample text here"; 

我收到了一堆UITableViewCells与没有任何文字。

看起来您将文本分配给单元格而不是标签。你可能想:

label.text = @"Sample text here"; 

此外,你需要标签的框架设置为您所需要的:

label.frame = CGRectMake(10,10, 80, 40); 

,或者直接在构造函数中:

label = [[UILabel alloc] initWithFrame:myFrame]; 
+0

不,这使得单元格不显示任何文字。我会更新这个问题来反映这一点。 – jpm 2008-12-31 19:41:32

+0

您还需要设置框架的大小。我已经更新了我的答案。 – codelogic 2008-12-31 20:56:42

我不会”不要在代码中这样做。我会用一个自定义的XIB文件做到这一点,然后在

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath 

委托函数加载它。这样你可以设计XIB文件到你的确切规格,并调整它。

祝你好运!

您之前询问过此问题,并收到正确的答案;

How to customize the background color of a UITableViewCell?