无法更改 UILabel 文本颜色

Posted

技术标签:

【中文标题】无法更改 UILabel 文本颜色【英文标题】:Can not change UILabel text color 【发布时间】:2011-02-01 17:01:34 【问题描述】:

我想更改 UILabel 文本颜色但我无法更改颜色,这就是我的代码的样子。

UILabel *categoryTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 46, 16)];
categoryTitle.text = @"abc";
categoryTitle.backgroundColor = [UIColor clearColor];
categoryTitle.font = [UIFont systemFontOfSize:12];
categoryTitle.textAlignment = UITextAlignmentCenter;
categoryTitle.adjustsFontSizeToFitWidth = YES;
categoryTitle.textColor = [UIColor colorWithRed:188 green:149 blue:88 alpha:1.0];
[self.view addSubview:categoryTitle];
[categoryTitle release];

标签文本颜色是白色,不是我的自定义颜色。

感谢您的帮助。

【问题讨论】:

如果你对此感到困惑,作为测试使用.. [UIColor greenColor], [UIColor yellowColor] 等等。 【参考方案1】:

UIColor 的 RGB 分量在 0 到 1 之间缩放,最高不超过 255。

试试

categoryTitle.textColor = [UIColor colorWithRed:(188/255.f) green:... blue:... alpha:1.0];

在 Swift 中:

categoryTitle.textColor = UIColor(red: 188/255.0, green: ..., blue: ..., alpha: 1)

【讨论】:

嗨@KennyTM。我知道为什么我们必须使用将我们的值除以255 @EXC_BAD_ACCESS:将值从 0 ... 255 (0xff) 转换为 0.0 ... 1.0 如果我们已经完成了这个划分并且分别拥有 0.5,0.6,0.3 的 RGB 值,我们如何给出这个值。【参考方案2】:

可能是更好的方法是

UIColor *color = [UIColor greenColor];
[self.myLabel setTextColor:color];

这样我们就有了彩色文本

【讨论】:

OP 特别想使用 自定义颜色,而不仅仅是预设颜色,因此使用预设不是一个可行的解决方案。接受的答案是正确的。 OP 不应该使用自定义颜色,这太难了:) 太难了”?上帝......(保持讽刺!)【参考方案3】:

试试这个,其中 alpha 是不透明度,其他的是红色、绿色、蓝色通道-

self.statusTextLabel.textColor = [UIColor colorWithRed:(233/255.f) green:(138/255.f) blue:(36/255.f) alpha:1];

【讨论】:

一些解释会很好!【参考方案4】:

有可能,它们在 InterfaceBuilder 中没有连接。

文字 colour(colorWithRed:(188/255) green:(149/255) blue:(88/255)) 正确,可能是连接错误,

backgroundcolor用于label的背景色,textcolor用于属性textcolor。

【讨论】:

【参考方案5】:

在 swift 代码中添加属性文本颜色。

斯威夫特 4:

  let greenColor = UIColor(red: 10/255, green: 190/255, blue: 50/255, alpha: 1)
  let attributedStringColor = [NSAttributedStringKey.foregroundColor : greenColor];

  let attributedString = NSAttributedString(string: "Hello World!", attributes: attributedStringColor)
  label.attributedText = attributedString

对于 Swift 3:

  let greenColor = UIColor(red: 10/255, green: 190/255, blue: 50/255, alpha: 1)
  let attributedStringColor : NSDictionary = [NSForegroundColorAttributeName : greenColor];


  let attributedString = NSAttributedString(string: "Hello World!", attributes: attributedStringColor as? [String : AnyObject])
  label.attributedText = attributedString 

【讨论】:

【参考方案6】:
// This is wrong 
categoryTitle.textColor = [UIColor colorWithRed:188 green:149 blue:88 alpha:1.0];

// This should be  
categoryTitle.textColor = [UIColor colorWithRed:188/255 green:149/255 blue:88/255 alpha:1.0];

// In the documentation, the limit of the parameters are mentioned.

colorWithRed:green:blue:alpha: documentation link

【讨论】:

以上是关于无法更改 UILabel 文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

更改 UILabel 的文本颜色

更改 UItableViewCell 中的 UILabel 文本颜色

当我在 ios 中展开和折叠 TableList 单元格时如何更改 UILabel 文本颜色

UIProgressBar:如何根据背景颜色更改 UILabel 颜色

无法更改 UILabel 的文本

UITableView,UILabel 文本颜色在选择行时没有改变? [关闭]