IOS: pregunta sobre la animation

Tengo este código: successview es mi vista y comienza con alpha 0.00, pero cuando termina la animation con autoreverse, successview se convierte con alpha 1.00 … ¿por qué?

[UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:2]; [UIView setAnimationRepeatAutoreverses:YES]; [successView setAlpha:1.00]; [UIView commitAnimations]; 

Un enfoque es hacer dos animaciones diferentes: una que progrese hacia un valor alfa de 1.0 y luego otra que vaya de 1.0 a cero.

Use animateWithDuration:animations:completion: método de UIView para lograr esto. Puede hacer lo contrario en el bloque de finalización.

Algo a lo largo de las líneas de:

 [UIView animateWithDuration:0.2 animations:^{view.alpha = 1.0;} completion:^(BOOL finished){ [UIView animateWithDuration:0.2 animations:^{view.alpha = 0;}]; }]; 

Consulte la documentation de UIView para get más detalles sobre las animaciones .

Está en los documentos:

Si combina la autoreversión con un recuento repetido (configurable mediante el método setAnimationRepeatCount:), puede crear animaciones que cambien entre los valores antiguos y nuevos un número específico de veces. Sin embargo, recuerde que el número de repeticiones indica la cantidad de ciclos completos. Si especifica un número integer como 2.0, la animation termina en el valor anterior, que es seguido por la vista que se actualiza inmediatamente para mostrar el nuevo valor, que puede ser discordante. Si desea que la animation termine con el nuevo valor (en lugar del antiguo), agregue 0.5 al valor de conteo de repetición. Esto agrega un medio ciclo adicional a la animation.

Actualización: lea mal su código, pero los documentos sugieren que use animateWithDuration:delay:options:animations:completion: en su lugar, si está apuntando a iOS 4.0 y versiones posteriores.

Si alguien está interesado, aquí está el código Swift:

  UIView.animate(withDuration: 0.2, animations: { view.alpha = 1 }) { (finished) in UIView.animate(withDuration: 0.2, animations: { view.alpha = 0 }) }