我希望在我的应用程序中创建一个标准的外观和感觉,其中一些 UILabel
有一个特定的textColor
.
我有几个 UILabel
在我的 UIViewController
,并在 viewDidLoad
方法我正在调用一个设置 textColor
的函数属性(property):
[[CHToolKit sharedToolkit] uiLabelAppearanceFeatured:[self IBOLabelStepsRemaining]];
CHToolkit
是我为杂项任务创建的单例。而且,上面的效果很好。但是我必须在需要
UILabel
的任何地方执行此操作带有自定义颜色。现在,我想到更谨慎的做法是将UILabel
子类化。 , (我称之为 CHLabel
)创建我自己的实例,并在它的 init 方法中定义 textColor
那里。然后,当向我的 VC 添加新的 UILabel 时,我可以选择我的自定义类而不是 UILabel
.我的自定义执行
UILabel
简单如下:#import "CHToolKit.h"
#import "CHLabel.h"
@implementation CHLabel
- (CHLabel *)init {
if (self = [super init]) {
[self setTextColor:kColourDefaultAppColourText];
}
return self;
} // init
@end
所以,当我拖动
UILabel
在我的 Storyboard上(在 Interface Builder 中)然后我选择 CHLabel
, (替换 UILabel
)来自自定义类部分。而这,它允许我这样做。现在,在运行时,我会期待我的
CHLabel
有不同的颜色,即在我的自定义类中定义的颜色。但它不 .它保持黑色,或在 IB 中设置的任何颜色。知道我做错了什么吗?
最佳答案
那是因为在 init 方法中还没有初始化任何 UI 对象。您需要在 awakeFromNib 方法中执行此操作。
-(void)awakeFromNib {
[super awakeFromNib];
[self setTextColor:kColourDefaultAppColourText];
}
或者你可以使用外观。将其设置在例如。 didFinishLaunchingWithOptions 方法与您的子类:
[[CHLabel appearance] setTextColor:kColourDefaultAppColourText];
关于ios - 通过子类化 UILabel 以在 Storyboard 上使用的标准文本颜色 - (IBOutlet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30298934/