Animazioni con UIImageView

      Nessun commento su Animazioni con UIImageView

Per l’articolo di oggi ho scelto qualcosa che è stato popolare in App Store nel passato ma che ancora tutt’oggi affascina alcune aplpicazioni…le “Animazioni“.

fiamma animazione

La prima idea di applicazione è stata iFiamma il quale era un semplice video di una fiamma girato da me. A quel tempo non avevo visto una fiamma più chiara in App Store pensai che sarebbe stato bello avere una fiamma da tenere in mano ad un concerto.

La mia prima sfida è stata avere mio video “fiamma” ripetere senza pausa. Poi, appena ho visto Crazy Lighter mi sono chiesto: “come hanno fatto a farlo funzionare con un ciclo infinito”. Non posso dire che questo sia il modo “giusto” per farlo, ma questo farà per noi….almeno per le applicazioni semplice. Invece di utilizzare un video è possibile utilizzare un UIImageView con una sequenza di immagini che girano in loop continuo.

Ecco la funzione chiave:

[code lang=”obj-c”]

// creiamo la view che conterrà l’animazione

UIImageView* campFireView = [[UIImageView alloc] initWithFrame:self.view.frame];

// carichiamo tutti i frame dell’animazione

campFireView.animationImages = [NSArray arrayWithObjects:

[UIImage imageNamed:@"campFire01.gif"],
[UIImage imageNamed:@"campFire02.gif"],
[UIImage imageNamed:@"campFire03.gif"],
[UIImage imageNamed:@"campFire04.gif"],
[UIImage imageNamed:@"campFire05.gif"],
[UIImage imageNamed:@"campFire06.gif"],
[UIImage imageNamed:@"campFire07.gif"],
[UIImage imageNamed:@"campFire08.gif"],
[UIImage imageNamed:@"campFire09.gif"],
[UIImage imageNamed:@"campFire10.gif"],
[UIImage imageNamed:@"campFire11.gif"],
[UIImage imageNamed:@"campFire12.gif"],
[UIImage imageNamed:@"campFire13.gif"],
[UIImage imageNamed:@"campFire14.gif"],
[UIImage imageNamed:@"campFire15.gif"],
[UIImage imageNamed:@"campFire16.gif"],
[UIImage imageNamed:@"campFire17.gif"], nil];

// tutti i frame gireranno in 1.75 secondi
campFireView.animationDuration = 1.75;

// ripetiamo l’animazione all’infinito
campFireView.animationRepeatCount = 0;

// start animazione
[campFireView startAnimating];

//aggiunge l’animazione alla view principale
[self.view addSubview:campFireView];

[/code]

Il codice è leggermente ridondante…ma è voluto. In questo modo anche un principiante riesce a capire la logica del codice. Per gli esperti invece consiglio un for progressivo per caricare le immagini nell’NSArray richieste.

 download codice sorgente