20.04.2013 Views

Tutorial pratici per iPhone SDK v1.6 - Get a Free Blog

Tutorial pratici per iPhone SDK v1.6 - Get a Free Blog

Tutorial pratici per iPhone SDK v1.6 - Get a Free Blog

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Abbiamo definito tre metodi, che si occu<strong>per</strong>anno del movimento del logo di Windows e della<br />

sua cancellazione. vediamoli nel dettaglio:<br />

• touchesMoved, (dalla riga 1 alla 6) In questo metodo, salviamo nella variabile “touch”<br />

l’evento che l’utente compie toccando un qualsiasi oggetto della nostra applicazione (riga<br />

2). Controlliamo, poi, che l’oggetto toccato corrisponda a “imageLogo” (riga 3), cioè al logo<br />

di Windows: se l’oggetto è proprio quello, teniamo traccia del centro dell’oggetto (che nel<br />

frattempo viene mosso dall’utente) con la posizione del dito sullo schermo (riga 4). Ovvero,<br />

è come se spostassimo fisicamente l’oggetto con il nostro dito e lo muovessimo su un piano.<br />

• touchesEnded, (dalla riga 8 alla 18) In questo metodo diciamo semplicemente che se il<br />

frame di “imageLogo” (ovvero il logo di Windows) interseca il frame del cestino (riga 9),<br />

deve essere chiamato il metodo “cancella”, che si occu<strong>per</strong>à dell’animazione della cancellazione<br />

(riga 11). Prima di chiamare tale metodo, inoltre, cambiamo l’immagine del cestino<br />

vuoto con quella del cestino pieno (riga 10). Se il logo, invece, non è stato spostato sopra il<br />

cestino, eseguiamo una semplice animazione, che riporta l’immagine al centro della vista<br />

(dalla riga 13 alla 16).<br />

• cancella, (dalla riga 20 alla 26) In questo metodo definiamo l’animazione che avrà il logo di<br />

Windows quando verrà sposato sopra il cestino. Alla riga 21 cambiamo il valore della variabile<br />

“cancella”, in modo da sa<strong>per</strong>e che il logo è stato eliminato. Alla riga 22 definiamo il<br />

punto di partenza della nostra animazione, mentre con l’istruzione successiva ne definiamo<br />

la durata. La riga 24 è l’animazione vera e propria, che farà scomparire il logo. Con l’ultima<br />

istruzione definiamo la fine dell’animazione.<br />

IL RIPRISTINO DEL LOGO<br />

Abbiamo quasi terminato la nostra applicazione, manca solo la definizione dell’azione “ripristina:”.<br />

Tale metodo è già stato definito da Interface Builder, quindi noi dobbiamo solo scrivere il<br />

codice al suo interno. Ecco le istruzioni da inserire:<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

- (IBAction)ripristina{<br />

! if (cancellato) {<br />

! ! [UIView beginAnimations:nil context:NULL];<br />

! ! [UIView setAnimationDuration:0.5];<br />

! ! imageLogo.transform = CGAffineTransformIdentity;<br />

! ! imageCestino.image = [UIImage<br />

imageNamed:@"TrashIconEmpty.png"];<br />

! ! imageLogo.center = CGPointMake(155.0, 100.0);<br />

! ! [UIView commitAnimations];<br />

! ! cancellato = NO;<br />

! }<br />

}<br />

Questo metodo è speculare a “cancella”, in quanto dobbiamo eseguire l’animazione inversa!<br />

Andremo, quindi, ad eseguire un’animazione, che porterà il logo dal cestino (in cui si trova) alla<br />

posizione originale (o quasi, in quanto è definita in modo arbitrario da noi, alla riga 7).<br />

<strong>Tutorial</strong> <strong>pratici</strong> <strong>per</strong> <strong>iPhone</strong> <strong>SDK</strong>! 33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!