Pregunta

Estoy tratando de retrasar entre la vuelta al alfa de cada botón a 0.0, pero lo que tengo no funciona.

[UIView animateWithDuration:1.5 delay:.25 options:UIViewAnimationCurveLinear animations:^{button.alpha = 0.0;
            button2.alpha = 0.0;
            button3.alpha = 0.0;
            button4.alpha = 0.0;
            button5.alpha = 0.0;} completion:^(BOOL finished){ ; }];

¿Cómo se anima uno con un retraso?

¿Fue útil?

Solución

El retraso es iniciar la animación, no un retraso entre cada cambio en el bloque de animación.

Ha hecho las cosas innecesariamente difíciles de tener una secuencia de botones y decidir crear variables individuales manualmente en lugar de usar una matriz.Si tiene una colección de variables, generalmente debe almacenarlas en una colección de algún tipo.

Aquí hay una forma en que podría hacerlo si estuvieran en una matriz:

NSUInteger i = 0;
float duration = 1.5f;
for (UIButton *button in buttons) {
    [UIView animateWithDuration:duration delay:0.25f+duration*i UIViewAnimationCurveLinear animations:^{
        button.alpha = 0.0f;
    } completion:NULL];
    ++i;
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top