UIViewAnimation: Блокировка на основе не работает.Устаревший стиль работ? - PullRequest
1 голос
/ 02 августа 2011

Существует два основных документированных метода анимации UIViews.Во-первых, это устаревший процесс, в котором один совершает несколько вызовов, начиная с метода beginAnimations:context:, а другой, более новый, предлагаемый подход, основан на блоках.

В моем приложении приведен следующий код.Однако работает только устаревший сегмент анимации.Более новый, основанный на блоках подход работает с первого раза, но каждый последующий раз переходит непосредственно к концу анимации и сразу показывает мне только последний кадр.Кто-нибудь имел опыт с этим?

-(void)updateImageViewSlider:(UIImage *)image {

    mImageFeedSwipe.alpha = 0.0;
    [mImageFeedSwipe setHidden:NO];
    mImageFeedSwipe.frame = DEFAULT_IMAGEVIEW_RECT;

    [mImageFeedSwipe setImage:image];

    //
    // The following animation code works fine.
    //

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0];
    mImageFeedSwipe.alpha = 1.0;
    [mImageFeedSwipe setFrame:NEW_IMAGEVIEW_RECT];
    [UIView commitAnimations];

    //
    // The following DOES NOT work except on the first run
    //

    int animationOptions = 0
    | UIViewAnimationOptionCurveEaseInOut
    | UIViewAnimationOptionBeginFromCurrentState
    | UIViewAnimationOptionAllowUserInteraction;
    [UIView animateWithDuration:1.0
                          delay:0 
                        options:animationOptions
                     animations:^{  

                         // Bring in the swiping image view...
                         mImageFeedSwipe.alpha = 1.0;
                         [mImageFeedSwipe setFrame:NEW_IMAGEVIEW_RECT];
                        } 
                     completion:nil];
}

Это выполняется в главном потоке через [self performSelectorOnMainThread...].

1 Ответ

1 голос
/ 09 сентября 2011

Я видел ту же самую проблему, пока не понял, что между анимациями я скрывал вид и никогда не менял вид. Есть ли вероятность, что вы скрываете свой вид или устанавливаете альфа на 0.0 между анимациями?

...