2010-10-06 4 views
3

Я хотел бы, чтобы оживить мое движение подпанелей при повороте устройства, изменяя альфа 0, переместить вид в новое положение и сбросить альфа к 1.Использования блока Завершение обработчика в прошивке 4 для анимации

Использование этот код в didRotateFromInterfaceOrientation заставляет вид мигать и исчезать очень быстро, а затем снова появляется. Я бы хотел избежать этого поведения.

[UIView animateWithDuration:kAnimationDuration animations:^{ 
    anObject.alpha = 0.0; 
    CGRect newFrame = anObject.frame; 
    newFrame.origin.x = newX; 
    newFrame.origin.y = newY; 
    newFrame.size.width = newWidth; 
    newFrame.size.height = newHeight; 
    anObject.frame = newFrame; 
} completion:^ (BOOL finished){ 
    if (finished) { 
     anObject.alpha = 1.0; 
    } 
}]; 

Есть ли способ вокруг этого сверкания?

Thanks

ответ

4

Возможно, на самом деле анимация альфа на завершении? а не вспыхивать? :)

[UIView animateWithDuration:kAnimationDuration animations:^{ 
anObject.alpha = 0.0; 
CGRect newFrame = anObject.frame; 
newFrame.origin.x = newX; 
newFrame.origin.y = newY; 
newFrame.size.width = newWidth; 
newFrame.size.height = newHeight; 
anObject.frame = newFrame; 
} completion:^ (BOOL finished){ 
if (finished) { 
[UIView animateWithDuration:kAnimationDuration 
           animations:^{ 
            anObject.alpha = 1;} 
} 
}]; 

Cheers, Кшиштоф Заблоцкий

+0

Это делает его лучше исчезнуть, но по-прежнему мигает немного неожиданно. Спасибо хоть. – joec