Sto provando a creare un semplice gioco Simon (una sequenza crescente di colori lampeggia e l'utente deve provare a ripetere quella sequenza). Il modo in cui lo sto facendo è di avere 4 UIViews con 8 immagini. Quindi c'è un UIView per rosso, blu, verde e giallo. E ho gif di verde scuro, verde chiaro, rosso scuro, rosso chiaro, ecc.ogg-c: esecuzione di più blocchi di animazione transitionWithView
Quindi nel mio codice, sto usando il blocco di animazione di transizioneWithView di UIView: L'immagine di UIView imageView.image è impostata di default sull'immagine a colori scuri e questo blocco sta passando a un'immagine di colore chiaro, e alla fine torna all'immagine a colori scuri (per dargli un aspetto "illuminante").
- (void) animateColor:(NSString *)color
{
...
//do stuff to default the dark and light image name and which UIView to animate based on the color parameter
...
[UIView transitionWithView:imageView
duration:.5
options: UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAutoreverse
animations:^{
imageView.image = [UIImage imageNamed:lightImage];
}
completion:^(BOOL finished){
if (finished){
imageView.image = [UIImage imageNamed:darkImage];
}
}];
}
Questo funziona correttamente quando lo chiamo il metodo con questo codice con un colore.
Il problema è, diciamo che ho un NSArray o colori che voglio animare in sequenza. Quindi se il mio array era "blu", "verde" vorrei che la transizioneWithView venisse chiamata usando il blu, animando la vista blu, quindi animando la vista verde. Al momento, animerà la vista verde e la vista blu contemporaneamente.
Sto provando a giocare con NSTimer in questo momento, ma non ho molta fortuna con quello.
Qualsiasi consiglio là fuori sarebbe molto apprezzato.