Скрытие UILabel на Инициативе - PullRequest
0 голосов
/ 10 ноября 2011

У меня проблема с этим основным кодом:

-(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];.Метка всегда отображается при запуске.

Надеюсь, это поможет мне, это просто, но необходимо !!

Удачи!

1 Ответ

4 голосов
/ 10 ноября 2011

Этот код не в том месте.Вы не должны создавать и работать с представлениями в инициализаторе контроллера представления (предполагая, что приведенный выше код находится внутри класса контроллера представления).

Вместо этого выполните следующее:

- (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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...