无法更改 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 文本颜色的主要内容,如果未能解决你的问题,请参考以下文章
更改 UItableViewCell 中的 UILabel 文本颜色
当我在 ios 中展开和折叠 TableList 单元格时如何更改 UILabel 文本颜色