我想在Objective-C中创建类别,这将是UILabel的SubClass,所以在帮助下我可以更改应用程序中所有UILabel的标签颜色。请提出一些建议。
答案 0 :(得分:0)
“基础UILabel类支持标签文本的简单和复杂样式。您还可以控制外观的各个方面,例如标签是使用阴影还是使用高亮显示。如果需要,您可以自定义通过继承“。
进一步显示文本的外观检查这两个链接: 1. How to Subclass UI elements like UILabel, UIButton。 2. SubClassing UILabel
答案 1 :(得分:0)
您不需要类别来实现此样式。
<强> 1。基本方法
要更改整个应用中所有UILabel
类实例的文字颜色,请使用外观
[[UILabel appearance] setTextColor:[UIColor redColor]];
<强> 2。更糟糕的方法
如果您想要子类 UILabel
,则需要覆盖其绘图方法。这是不好的方法。
第3。最糟糕的方法
如果您坚持使用类别,则可以创建类别UILabel+CustomColor
并在
+ (UILabel *)coloredLabel {
UILabel *label = [UILabel new];
label.textColor = [UIColor redColor];
return label;
}
此特定标签的创建将是:
UILabel *label = [UILabel coloredLabel];
答案 2 :(得分:0)
您可以像这样设置标签颜色。
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
[label setTextColor:[UIColor redColor]];
[label setBackgroundColor:[UIColor clearColor]];
如果要设置不同的文本样式,请使用NSAttributedString字符串并将其设置为标签,请参阅以下代码段
NSString *textString;//Your text
dict = @{NSForegroundColorAttributeName:[UIColor redColor],
NSBackgroundColorAttributeName: [UIColor clearColor],
NSFontAttributeName:[UIFont systemFontOfSize:10],
NSUnderlineStyleAttributeName: @1
};
NSAttributedString *attributtedString = [[NSAttributedString alloc] initWithString:textString attributes:dict];
[label setAttributedText:attributtedString];