2011-05-17 34 views
0

這UIView的是我的第一個UIView的代碼(如它應顯示):的UIView沒有顯示從另一個類

IconView *iconView = [[IconView alloc] initWithFrame:CGRectMake(0, 0, 320, 400) 
            numberOfColumns:3 
              iconSize:CGSizeMake(80, 80)]; 
[self.view addSubview:iconView]; 

這裏是從其他的UIView代碼:

-(IconView *)initWithFrame:(CGRect)frame 
      numberOfColumns:(int)numberOfColumnsTemp 
        iconSize:(CGSize)iconSize 
{ 
    self.backgroundColor = [UIColor redColor]; 

    self.frame = frame; 

    return self; 
} 

但背景不會變成紅色。即使加入:

iconView.frame = CGRectMake(0, 0, 320, 400); 

對第一個視圖什麼都不做。添加一個常規UIView的作品。

+1

你應該叫你自己的超級初始化。 – 2011-05-17 17:28:37

+0

我該怎麼做? – Andrew 2011-05-17 17:29:27

+0

沒關係,我明白了。 – Andrew 2011-05-17 17:31:16

回答

1

你的初始化應該是這樣的:

- (id)initWithFrame:(CGRect)frame 
      numberOfColumns:(int)numberOfColumnsTemp 
        iconSize:(CGSize)iconSize 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     self.backgroundColor = [UIColor redColor]; 
    } 
    return self; 
} 

一個初始化應該返回匿名類型。

但是我不能說這是否回答你的問題。

1

永遠,永遠,永遠做初始化是這樣的:

-(id)initWithParam1:(ParamType *)param1 descParam2:(ParamType *)param2 { 
    if ((self = [super init])) { 
     //initialize stuff 
    } 
    return self; 
}