Sto iniziando a imparare a utilizzare l'animazione UIView. Così ho scritto le seguenti righe:setAnimationRepeatAutoreverses non si è comportato come mi aspettavo
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
[UIView setAnimationRepeatCount:2];
[UIView setAnimationRepeatAutoreverses:YES];
CGPoint position = greenView.center;
position.y = position.y + 100.0f;
position.x = position.x + 100.0f;
greenView.center = position;
[UIView commitAnimations];
In questo caso, l'UIView (una scatola verde) è tornato e anteriori 2 volte. Fin qui tutto bene, MA ho scoperto che dopo lo spostamento due volte, il riquadro verde è finito saltato nella "nuova posizione" (posizione.x + 100.0f, posizione.y + 100.0f) invece di tornare alla posizione originale (posizione.x, posizione.y). Ciò rende l'animazione piuttosto strana (come dopo che il riquadro torna alla posizione originale causata da setAnimationRepeatAutoreverses, salta alla nuova posizione nell'ultimo microsecondo!)
Qual è il modo migliore per rendere la casella verde NOT salta alla nuova posizione all'ultimo minuto?
In realtà, se seguo direttamente il codice, la vista continuerà a volare verso l'angolo in alto a sinistra. Non abbiamo davvero bisogno di creare un'animazione. Basta fare -100 per entrambe le xey del centro dovrebbe essere sufficiente. – user222292
Non sono sicuro di cosa intendi: puoi chiarire cosa c'è che non va nel codice che ho dato? –