Blink скрыт и использование блоков - PullRequest
0 голосов
/ 19 октября 2011

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

- (void)blinkView:(UIView *)view
{
    view.layer.opacity = 0.0f;
    view.hidden = NO;

    [UIView beginAnimations:@"Blinking" context:nil];
    [UIView setAnimationRepeatCount:1.0];
    [UIView setAnimationDuration:0.6f];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    view.layer.opacity = 1.0f;
    [UIView commitAnimations];
}

Как мне написать этот код с блоками, и как я должен реализовать метод с обратным эффектом (скрыть uiview с миганием)?

Ответы [ 2 ]

3 голосов
/ 19 октября 2011
[UIView transitionWithView: view
       duration:0.6f
       options:UIViewAnimationOptionCurveEaseInOut
       animations:^{ view.layer.opacity = 1.0f; }
       completion:NULL];

или

[UIView transitionWithView: view
       duration:0.6f
       options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse
       animations:^{ view.layer.opacity = 1.0f; }
       completion:NULL];

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

Надеюсь, это поможет вам.

0 голосов
/ 19 октября 2011

Вы можете использовать UIView setAnimationDelegate: и setAnimationDidStopSelector:

[UIView beginAnimations:@"Blinking" context:nil];
[UIView setAnimationRepeatCount:1.0];
[UIView setAnimationDuration:0.6f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
view.layer.opacity = 1.0f;
[UIView commitAnimations];


- (void) animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
    // add your final code here : you can give new animation effect here.
}

Или попробовать animateWithDuration (доступно только в iOS 4 или более поздней версии)

[UIView animateWithDuration:0.6f
                 animations:^{
                             view.layer.opacity = 1.0f;
                             }
                 completion:^(BOOL  completed){
// add your final code here : you can give new animation effect here.
                                              }
                                           ];
...