Ho cercato di capire un modo decente per animare senza problemi una modifica della dimensione del fotogramma su un UILabel, senza un ridisegno di salto iniziale. Quello che succede di default è che quando faccio qualcosa di simile:Animare il frame di UILabel senza problemi
// Assume myLabel frame starts as (0, 0, 100, 200)
[UIView beginAnimations:@"myAnim" context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:1.0];
myLabel.frame = CGRectMake(0.0, 0.0, 50, 100);
[UIView commitAnimations];
ricevo un'animazione fluida con l'etichetta, tuttavia il modo in cui lo fa è che ci vuole il livello dell'immagine ridisegnato per il formato di destinazione dell'etichetta e allunga il contenuto per adattarlo alla corrente, quindi si anima nel rettangolo di destinazione. Questo finisce con un salto molto bizzarro nella visualizzazione del testo. Qui ci sono due immagini che mostrano l'aspetto pre-animazione e poi subito dopo l'animazione inizia:
pre-animazione
Post-Animazione
ho cercato di usare solo la strato per animare questo, ma ho ancora gli stessi problemi.
Quindi la domanda è: come posso evitare questo?
Grazie per qualsiasi aiuto,
Scott
E 'una vecchia questione, ma io sono lotta con esattamente lo stesso problema. In qualche modo è illogico. Come ho capito i metodi di animazione dovresti essere in grado di animare la maggior parte delle proprietà su una classe UIView. Ma perché la proprietà frame di un UILabel si comporta in modo diverso durante l'animazione rispetto a una sottoclasse UIView normale. Sembra che la classe UILabel stia ignorando l'animazione per la dimensione e animi solo la modifica della posizione. Che crea un'animazione dall'aspetto piuttosto strano. Gradirei se qualcuno potesse aiutarmi con questo. – Chris