如何在故事板中为 UIView 创建初始化方法?
How to create init methods for UIViews in storyboard?
我有一个 class PLButton
有两个属性:
@property (strong, nonatomic) UIColor *purpleColor;
@property (strong, nonatomic) UIColor *grayColor;
及其初始值设定项:
- (instancetype)init {
if (self = [super init]) {
self.purpleColor = [UIColor colorWithRed:142.0/255.0 green:23.0/255.0 blue:126.0/255.0 alpha:1.0];
self.grayColor = [UIColor colorWithRed:239.0/255.0 green:239.0/255.0 blue:239.0/255.0 alpha:1.0];
}
return self;
}
我还有一个 PLEventButton
作为 PLButton
的子class:
和内部初始化器:
- (instancetype)init {
if (self = [super init]) {
return self;
}
return self;
}
我在情节提要中分配给 UIButton 的那些 classes。
为什么这些属性在 PLButton 和 PLEventButton 中根本不起作用(它们为零)?
故事板中的对象是通过initWithCoder 方法初始化的。
所以只要在里面调用你的初始化方法就可以了。
- (id)initWithCoder:(NSCoder*)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
[self myInitialization];
}
return self;
}
我有一个 class PLButton
有两个属性:
@property (strong, nonatomic) UIColor *purpleColor;
@property (strong, nonatomic) UIColor *grayColor;
及其初始值设定项:
- (instancetype)init {
if (self = [super init]) {
self.purpleColor = [UIColor colorWithRed:142.0/255.0 green:23.0/255.0 blue:126.0/255.0 alpha:1.0];
self.grayColor = [UIColor colorWithRed:239.0/255.0 green:239.0/255.0 blue:239.0/255.0 alpha:1.0];
}
return self;
}
我还有一个 PLEventButton
作为 PLButton
的子class:
和内部初始化器:
- (instancetype)init {
if (self = [super init]) {
return self;
}
return self;
}
我在情节提要中分配给 UIButton 的那些 classes。 为什么这些属性在 PLButton 和 PLEventButton 中根本不起作用(它们为零)?
故事板中的对象是通过initWithCoder 方法初始化的。 所以只要在里面调用你的初始化方法就可以了。
- (id)initWithCoder:(NSCoder*)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
[self myInitialization];
}
return self;
}