Ciao a tutti, come promesso nel mio precedente articolo dedicato ai Blocchi in Objective-C, vi presento oggi un esempio concreto tramite un veloce Tips di programmazione in Xcode, nello specifico vedremo una soluzione alternativa al “TIPS#015 – Creare animazioni per i nostri oggetti in 3 passi” scritto tempo fa da Francesco Burelli. Vedremo come creare l’animazione di un oggetto di classe UIView o sottoclasse della stessa (praticamente tutti gli oggetti presenti nell’interfaccia delle nostre app), con l’utilizzo di una sola riga di codice, appunto basata sull’uso dei blocchi.
In parole povere, gli argomenti pesenti nelle 6 righe di codice utilizzate nel precedente tips (che vi posto per comodità):
[UIView beginAnimations:@"animation" context:NULL];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[theView setAlpha:0];
[UIView commitAnimations];
si possono condensare in un’unica riga di codice:
[UIView animateWithDuration:0.3
animations:^{
[theView setAlpha:0];
}
completion:^(BOOL finshed) {
if (finished) {
[self performSelector:
@selector(animationDidStop:object:)];
}
}
];
Le istruzioni che definiscono cosa deve fare l’animazione e quelle che devono essere eseguite alla fine della stessa sono racchiuse in due blocchi di codice con sintassi:
^(argomenti) {codice}
Lo scopo di questo veloce tips è proprio quello di mostrarvi questo tipo di sintassi sfruttando un piccolo e semplice esempio pratico.
Nel nostro caso il primo blocco è privo di argomenti, il secondo ha invece un argomento di tipo BOOL che indicherà se l’animazione è terminata o meno (YES o NO).
Come vedete niente di complicatissimo 🙂
In uno dei prossimi articoli affronteremo l’argomento blocchi in un tutorial sulle applicazioni multithreading.











One Response to “TIPS#018 – Creare animazioni di oggetti tramite metodi “block-based””
17 Marzo 2011
daxerQuesto lo provo subito