我遇到了这个基本代码的问题:
-(id)init{
self = [super init];
if(self){
self.mensaje = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)];
[self.mensaje setText:@"He vuelto"];
[self.view addSubview:self.mensaje];
[self.mensaje setHidden:YES];
}
return self;
}
除了[self.mensaje setHidden:YES];
之外,所有代码都可以正常工作。标签始终显示在开始处。
我希望可以帮助我,这是基本的,但是必要!!
祝你好运!答案 0 :(得分:4)
此代码位于错误的位置。您不应该在视图控制器的初始化程序中创建和使用视图(假设上面的代码在视图控制器类中)。
相反,请执行以下操作:
- (id)init
{
self = [super init];
if (self) {
// init any state other than views
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.mensaje = [[UILabel alloc] initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)];
[self.mensaje setText:@"He vuelto"];
[self.view addSubview:self.mensaje];
[self.mensaje setHidden:YES];
}
这也假设您正在使用ARC。如果没有,您需要添加autorelease
,如下所示:
self.mensaje = [[[UILabel alloc] initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)] autorelease];