2011-08-25 8 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; 
    } 
} 
관련 문제