2012-03-21 74 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