2011-08-25 3 views
6
- (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を聴いたり、それ.IF viewDidAppearが、私はアプリを再起動すると、私はyesにそれを回した後、それが消えたときに、私は完全にはなく後に表示されないたびに更新されません。私はいつもそこに行くことはありませんが、私はそれを隠すことはできません。 なぜそれが反応していないのか?UIimageviewを隠す/表示するには?

答えて

11

ビューが表示されるたびに、新しい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; 
    } 
} 
関連する問題