2009-04-15 46 views
0

我試圖在代碼中使用addSubview放置一些圖像,但它們沒有顯示出來。Subviews沒有出現在UIView類

我創建了一個類(myUIView),子類UIView,然後將IB中的nib文件的類更改爲myUIView。

然後我把下面的代碼放進去,但是我仍然看到空白的灰色屏幕。

- (id)initWithFrame:(CGRect)frame { 
    if (self = [super initWithFrame:frame]) { 
     // Initialization code 
     [self setupSubviews]; 
    } 
    return self; 
} 

- (void)setupSubviews 
{ 
    self.backgroundColor = [UIColor blackColor]; 

    UIImageView *black = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"black.png"]]; 
    black.center = self.center; 
    black.opaque = YES; 

    [self addSubview:black]; 

    [black release]; 
} 

回答

0

嘗試實施initWithCoder:與IB有時我有麻煩,initWithFrame:

,或者至少增加一個通話記錄,看是否執行

+0

工作....任何想法爲什麼? – Craig 2009-04-15 21:39:14

2

是你的init方法,只需要實現的initWithCoder。

從代碼動態創建UIView時調用initWithFrame。 從.nib文件加載的視圖始終使用initWithCoder實例化,編碼器負責從.nib文件讀取設置

我習慣於在單獨的方法中執行初始化,實現initWithCode和initWithFrame(以及需要時我自己的初始化方法)