如何创建Categories / SubClass UILabel来更改标签颜色或文本样式

时间:2016-09-21 07:00:59

标签: ios objective-c uilabel categories

我想在Objective-C中创建类别,这将是UILabel的SubClass,所以在帮助下我可以更改应用程序中所有UILabel的标签颜色。请提出一些建议。

3 个答案:

答案 0 :(得分:0)

Apple说:

“基础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];