UIView没有从另一个类中显示UIView

时间:2011-05-17 17:25:12

标签: iphone objective-c class 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可以正常工作。

2 个答案:

答案 0 :(得分:1)

您的初始化程序应如下所示:

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

初始值设定项应返回匿名类型。

但是我无法判断这是否能解决您的问题。

答案 1 :(得分:1)

始终,始终,始终像这样进行初始化:

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