back to top

Inseriamo qualche animazione sfruttando touchBegan e touchEnd – Guida Sviluppo App iOS

Combinando le potenzialità offerte dalla classe UITouch con la possibilità di eseguire delle animazioni, si possono ottenere degli effetti molto interessanti. Quello che andremo a fare in questo capitolo è creare delle semplici animazioni modificando gli attributi dell’oggetto che vogliamo animare.

Vi sarà sicuramente capitato, utilizzando qualche applicazione sul vostro iPhone o iPod Touch, di imbattervi in una schermata iniziale, per esempio di un gioco, con scritto "Tap to continue". Al tocco sullo schermo la suddetta schermata sparirà e verrà caricato il gioco o l’applicazione vera e propria. Noi faremo una cosa simile su una immagine, ovvero: al tocco sullo schermo l’immagine, con un’animazione, scomparirà per poi riapparire al successivo touch sul display. L’effetto che vogliamo introdurre nell’animazione è un effetto in stile dissolvenza.

Per far ciò possiamo tranquillamente utilizzare il progetto della gestione del menù visto nei capitoli precedenti. Posizioniamoci, quindi, nel file di intestazione di uno dei tre ViewController delle viste. Dichiariamo adesso un attributo di tipo UIImageView assegnandoli il nome imageView. A questo punto aprimo il file .xib associato al ViewController scelto, transciniamo all’interno della view un elemento grafico di tipo UIImageView e,d effettuiamo l’opportuno collegamento con la dichiarazioen dell’attributo fatta precedentemente. Selezioniamo poi l’elemento UIImageVIew e nel campo Image inseriamo un nome per l’immagine (ovviamente prima dobbiamo copiare l’immagine nella directory del nostro progetto). A questo punto, possiamo aprire il nostro file di implementazione del ViewController, ed inserire il seguente codice:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:1];
	
  if([imageView alpha] == 0)
    imageView.alpha = 1;

  else imageView.alpha = 0;
		
  [UIView commitAnimations];
}
Come abbiamo visto negli esempi mostrati nei capitoli precedenti, come prima cosa dichiariamo il blocco di animazione e la durata, che abbiamo impostato ad un secondo. Per fare l’effetto dissolvenza agiremo sull’attributo alpha dell’immagine che rappresenta la trasparenza: inseriamo dunque un if che controlla il valore dell’attributo alpha: se vale zero, significa che abbiamo già toccato una volta lo schermo e l’immagine non è visibile; settiamo così l’alpha al valore uno per poterla mostrare a video. Viceversa se ci troviamo nel caso in cui l’alpha vale uno (situazione nella quale ci troviamo non appena lanciata l’applicazione) si setta il valore dell’alpha a zero facendola scomparire. Come ultima istruzione invochiamo il metodo che sancisce la fine del blocco di animazione.

Se lanciamo l’applicazione vedremo che il passaggio dal valore uno al valore zero dell’alpha viene fatto in maniera graduale (la durata è specificata, come abbiamo visto, nel metodo setAnimationDuration) generando così l’effetto dissolvenza voluto.

Inseriamo adesso un’altra animazione che colora, in maniera graduale, lo sfondo della view di rosso. In questo caso utilizzeremo il metodo touchesEnd per lanciare l’animazione non appena l’utente solleverà il dito dallo schermo del dispositivo. Il codice per fare ciò è il seguente ed è molto simile a quello scritto in precedenza:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:1];
  self.view.backgroundColor = [UIColor redColor];
  [UIView commitAnimations];
}

Consiglio al lettore di esercitarsi su questo argomento modificando a piacimento gli attributi degli elementi grafici all’interno della view per prendere familiarità con gli strumenti presentati.

Pubblicità

In questa guida...