如何编写自定义UILabel类

在我的项目中,每个屏幕都有大量可用的UILabel ,这就是为什么我为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 

awakeFromNib不会被调用,如果你只是自己分配/初始化它,你需要把它[self setupUI]; 在您应该覆盖的init方法中

 - (id) initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if(self){ [self setupUI]; } return self; } 

如果要检查,那么您的标签已成功添加,然后为其设置一些文本。

我认为你没有为该标签设置任何视图,因此awakeFromNib不会在这里调用,因为你必须在layoutSubviews方法中编写代码

 #import "CustomLabel.h" @implementation CustomLabel -(void)layoutSubviews { [self setupUI]; } - (void)setupUI { [self setBackgroundColor:[UIColor redColor]]; [self setTextColor:[UIColor blackColor]]; } @end