我正在尝试在UIButton
内创建一个小指标。我已经放置了一个自定义视图,并将“界面”构建器中的自定义类更改为我的类。然后,我创建了一个相同类型的IBOutlet
,并将它们连接到界面构建器中。
我的子类看起来像这样:
- (UIView *)initWithNumber:(NSInteger *)number
{
self = [super initWithFrame:CGRectMake(0, 0, 34, 17)];
if (self) {
[self setBackgroundColor:[UIColor blueColor]];
}
return self;
}
然后在主视图中我做了:
self.indicatorControl = [indicatorControl alloc] initWithNumber:(NSNumber *)32];
但它在视图加载时没有初始化视图并改变背景颜色?为什么不这样呢?如果我将setBackgroundColor
方法调用放在awakeFromNib
中,它可以工作,但我希望它在我调用初始化时初始化并返回我的视图。看起来这应该有效。
答案 0 :(得分:1)
如果您保留IBOutlet,那么界面构建器将重新初始化您的按钮,覆盖您的代码内按钮创建。是否要在代码或界面构建器中初始化按钮?
我建议:
代码:从界面构建器中取消链接按钮并将代码放入父视图控制器的viewDidLoad中 界面构建器:在界面构建器中将背景设置为蓝色或在awakeFromNib中执行初始化