2012-03-21 34 views
0

我试图在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中,它可以工作,但我希望它在初始化时初始化并返回我的视图。这似乎应该工作。

回答

1

如果您保留IBOutlet,那么界面构建器将重新初始化您的按钮,并覆盖您的代码内按钮创建。你想在代码或界面生成器中初始化按钮吗?

我建议:

代码:脱钩从界面生成器按钮,并把代码中的viewDidLoad父视图控制器 界面生成器:将背景设置为蓝色界面生成器或执行初始化在awakeFromNib

+0

谢谢你,我刚刚使用了awakeFromNib,并设置了我想要的然后隐藏的元素,然后创建了一个方法来设置指标中我想要的数字,然后它将自己设置为不隐藏于那里...工作很好..感谢您的解释。 – JAManfredi 2012-03-22 14:27:46