这是我的第一个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可以正常工作。
答案 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;
}