2012-02-07 2 views
0

У меня есть эта кнопка, и я хочу, когда вы нажмете на нее, он отключится, и изображение на экране исчезнет, ​​когда следующее изображение закончится, чтобы исчезнуть, кнопка будет снова включить.fade image in и out с отключенной кнопкой

У меня есть этот код:

-(IBAction)showPrev:(id)sender 
{ 
    if (x != 0) 
    { 
     x=x-1; 
     [self fadeOut]; 
     imgLettersView.image = [imagesArray objectAtIndex:x]; 
     [self fadeIn]; 
     btnNext.enabled = NO; 
    } 
    else 
    { 
     btnPrev.enabled = NO; 
     btnNext.enabled = YES; 
    } 
lblshowx.text = [NSString stringWithFormat:@"%i",x]; 
} 

-(void)fadeOut 
{ 
    btnNext.enabled = NO; 
    btnPrev.enabled = NO; 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.2f]; 
    [self.imgLettersView setAlpha:0.0f]; 
    [UIView commitAnimations]; 
    [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(fadeIn) userInfo:nil repeats:NO]; 
} 

-(void)fadeIn 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.2f]; 
    [self.imgLettersView setAlpha:1.0f]; 
    [UIView commitAnimations]; 
    btnNext.enabled = YES; 
    btnPrev.enabled = YES; 
} 

ответ

2

Сделайте следующие корректировки в ваш метод FadeIn:

-(void)fadeIn 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.2f]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(reEnableButton)]; 
    [self.imgLettersView setAlpha:1.0f]; 
    [UIView commitAnimations]; 
} 

Кроме того, добавьте следующий метод к тому же классу контроллера, и вы хорошо go:

- (void) reEnableButton { 
    btnNext.enabled = YES; 
    btnPrev.enabled = YES; 
}