Как скрыть / показать UIimageview? - PullRequest
6 голосов
/ 25 августа 2011
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    CGRect viewRect = CGRectMake(250, 100, 30, 30);
    as = [[UIImageView alloc] initWithFrame:viewRect];
    as.backgroundColor=[UIColor clearColor];
    UIImage *img = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"check" ofType:@"png"]];
    [as setImage:img];
    [self.view addSubview:as];
    BOOL test= [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"];
    NSLog(@"%@", (test ? @"YES" : @"NO"));
    if(test == YES)
        {
            as.hidden=NO;
        }
    else
        {
            as.hidden=YES;
        }
}

Результат test YES, но imageView не слушает команду .hidden и не обновляет каждый раз, когда viewDidAppear. Если это не так, когда я перезапускаю приложение, и оно исчезает после того, как я переворачиваю это да, я показываю отлично, но после того, как я никогда не пойду всегда там, я не могу скрыть это. Есть идеи, почему он не реагирует?

1 Ответ

12 голосов
/ 25 августа 2011

Проблема в том, что вы создаете новый UIImageView каждый раз, когда появляется ваше представление.Вы должны создать UIImageView как один раз:

- (void)loadView {
    [super loadView];
    CGRect viewRect = CGRectMake(250, 100, 30, 30);
    as = [[UIImageView alloc] initWithFrame:viewRect];
    as.backgroundColor = [UIColor clearColor];
    UIImage *img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"check" ofType:@"png"]];
    as.image = img;
    [self.view addSubview:as];
    [as release];
}

, а затем показать / скрыть его в - viewDidAppear метод:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    BOOL test = [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"];
    NSLog(@"%@", (test ? @"YES" : @"NO"));
    if(test == YES) {
        as.hidden = NO;
    }
    else {
        as.hidden = YES;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...