Ho collegato i due metodi seguenti per separare i pulsanti nell'interfaccia utente, ma ho notato che dopo aver premuto il pulsante "VERSION 1" non sono riuscito a premere nuovamente il pulsante finché la durata dell'animazione all'interno del metodo non era terminata. La mia comprensione era che l'animazione utilizza il proprio thread in modo da non bloccare l'applicazione principale.fa animateWithDuration: animazioni: blocco thread principale?
// VERSION 1
-(IBAction)fadeUsingBlock {
NSLog(@"V1: Clicked ...");
[myLabel setAlpha:1.0];
[UIView animateWithDuration:1.5 animations:^{
[myLabel setAlpha:0.0];
}];
}
La versione più vecchio stile (sotto) non consentono il pulsante per essere repressa prima che il timer di animazione si conclude, è sufficiente resettare il timer per ricominciare. Se entrambi funzionano allo stesso modo, mi manchi qualcosa o c'è stato un cambio operativo tra il 3.2 e il 4?
// VERSION 2
-(IBAction)fadeUsingOld {
NSLog(@"V2: Clicked ...");
[myLabel setAlpha:1.0];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[myLabel setAlpha:0.0];
[UIView commitAnimations];
}
Acclamazioni Gary
Ah che abbia un senso, che avevo perso questa opzione nella documentazione, guarderò in su. Molte grazie, molto apprezzato. – fuzzygoat
Grazie per questo. Accidenti, questo mi stava infastidendo. In realtà è abbastanza fastidioso che non sia attivo di default, perché dice che blocca l'interazione con la vista animata, ma in realtà blocca l'intera interfaccia utente! – runmad
Uomo, non sarebbe bello se questo fosse stato risolto nel prossimo iOS 5.0 ... –