2011-04-01 62 views
0

我正在嘗試創建自定義UISlider。我需要爲自己插入子視圖(如標籤)。我正在使用從NIB加載自定義滑塊vs代碼:從代碼加載時不存在子視圖

[self insertSubview:_label1 atIndex:2]; 

這樣做的方法。當我在IB中創建滑塊並將其分配給我的PWSlider類時,一切正常。但是,如果我嘗試從代碼創建我的PWSlider,那麼當我執行我的內嵌(添加我的子視圖)時,不會出現子視圖。

對於init中的代碼,我重寫了initWithFrame,對於NIB,我嘗試了both,awakeFromNib以及initWithCoder - 結果相同。

當我與

NSLog(@"subview count: %d", [self.subviews count]); 

結果調試是從NIB加載我得到3子視圖,加載的程序,我得到0

任何想法?

+0

什麼是'PWSlider'? – 2011-04-01 18:36:08

+0

這是我自己實現的自定義UISlider ... ;-) – pawi 2011-04-20 13:26:40

回答

0

我假設你PWSlider從UISlider繼承,也假設你有代碼是這樣的:

-(id)initWithFrame:(CGRect)r { 
    self = [super initWithFrame:r]; 
    if(self) { 
    // add your subviews here, starting from index 0 
    } 
    return self; 
} 

你有沒有調試和檢查你的initWithFrame被調用?另外,如果您不關心子視圖在哪些位置,請使用addSubview,而不是insertSubview:atIndex :.

+0

是的,您的假設是正確的。 initWithFrame被調用,我在意子插入的位置......目前我只使用NIB文件中的滑塊。感謝您的建議!其他想法? – pawi 2011-04-08 08:26:04