在我的项目中,每个屏幕都有大量UILabels
可用,这就是为UILabel
创建一个单独的类的原因,我想在该类中设置所有标签属性。
但标签属性和标签也没有添加到我的MainViewController
。
我的代码:
CustomLabel:
#import "CustomLabel.h"
@implementation CustomLabel
- (id) init {
self = [super init];
if(self){
[self setupUI];
}
return self;
}
- (void)setupUI {
[self setBackgroundColor:[UIColor redColor]];
[self setTextColor:[UIColor blackColor]];
}
MainViewController:
#import "MainViewController.h"
#import "CustomLabel.h"
@interface MainViewController ()
{
CustomLabel * mainLabel;
}
@end
@implementation SampleViewController
- (void)viewDidLoad {
[super viewDidLoad];
mainLabel = [[CustomLabel alloc]initWithFrame:CGRectMake(50, 150, 100, 35)];
[self.view addSubview:mainLabel];
}
@end
答案 0 :(得分:4)
awakeFromNib
如果你只是自己分配/初始化它就不会被调用,你需要将[self setupUI];
放在你应该覆盖的init方法中
- (id) initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if(self){
[self setupUI];
}
return self;
}
答案 1 :(得分:1)
如果要检查标签,请成功添加标签,然后为其设置一些文字。
我认为你没有为该标签设置任何View,所以awakeFromNib不会在这里调用 为此你必须在layoutSubviews方法中编写代码
#import "CustomLabel.h"
@implementation CustomLabel
-(void)layoutSubviews
{
[self setupUI];
}
- (void)setupUI {
[self setBackgroundColor:[UIColor redColor]];
[self setTextColor:[UIColor blackColor]];
}
@end