UIView子类在主视图中初始化时未加载
问题描述:
我试图在UIButton
内部创建一个小指示器。我放置了一个自定义视图,并将界面生成器中的自定义类更改为我的类。然后我创建了一个相同类型的IBOutlet
,并在界面构建器中将它们连接起来。然后UIView子类在主视图中初始化时未加载
我的子类看起来是这样的:
- (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
中,它可以工作,但我希望它在初始化时初始化并返回我的视图。这似乎应该工作。
答
如果您保留IBOutlet,那么界面构建器将重新初始化您的按钮,并覆盖您的代码内按钮创建。你想在代码或界面生成器中初始化按钮吗?
我建议:
代码:脱钩从界面生成器按钮,并把代码中的viewDidLoad父视图控制器 界面生成器:将背景设置为蓝色界面生成器或执行初始化在awakeFromNib
谢谢你,我刚刚使用了awakeFromNib,并设置了我想要的然后隐藏的元素,然后创建了一个方法来设置指标中我想要的数字,然后它将自己设置为不隐藏于那里...工作很好..感谢您的解释。 – JAManfredi 2012-03-22 14:27:46