Pergunta

Estou tentando atrasar a mudança do alfa de cada botão para 0,0, mas o que tenho não está funcionando.

[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){ ; }];

Como animar com atraso?

Foi útil?

Solução

O atraso é para iniciar a animação, não um atraso entre cada alteração no bloco de animação.

Você tornou as coisas desnecessariamente difíceis para si mesmo ao ter uma sequência de botões e decidir criar variáveis ​​individuais manualmente em vez de usar um array.Se você tiver uma coleção de variáveis, normalmente deverá armazená-las em algum tipo de coleção.

Aqui está uma maneira de fazer isso se eles estivessem em uma 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top