C'è un modo per far ruotare una vista per sempre, con una velocità specificata? Ho bisogno di questo per un tipo di indicatore. So che c'è questa strana costante Lxxxxx00ff (non lo ricordo esattamente) che sta per "per sempre".Come far ruotare una vista per sempre?
5
A
risposta
20
È possibile utilizzare HUGE_VAL
per il valore flottante (se non ricordo male, la proprietà repeatCount per l'animazione è un float).
Per l'animazione di configurazione è possibile creare l'oggetto CAAnimation utilizzando +animationWithKeyPath:
metodo:
CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
animation.fromValue = [NSNumber numberWithFloat:0.0f];
animation.toValue = [NSNumber numberWithFloat: 2*M_PI];
animation.duration = 3.0f;
animation.repeatCount = HUGE_VAL;
[rotView.layer addAnimation:animation forKey:@"MyAnimation"];
se non ricordo male la creazione di questo tipo di rotazione utilizzando solo le animazioni UIView è impossibile, perché le rotazioni su 360 gradi (2 * M_PI radianti) sono ottimizzato per nessuna rotazione.
0
la mia scommessa è:
-(void)animationDidStopSelector:... {
[UIView beginAnimations:nil context:NULL];
// you can change next 2 settings to setAnimationRepeatCount and set it to CGFLOAT_MAX
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStopSelector:...)];
[UIView setAnimationDuration:...
[view setTransform: CGAffineTransformRotate(CGAffineTransformIdentity, 6.28318531)];
[UIView commitAnimations];
}
//start rotation
[self animationDidStopSelector:...];
ok scommessa migliore:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationRepeatCount: CGFLOAT_MAX];
[UIView setAnimationDuration:2.0f];
[view setTransform: CGAffineTransformMakeRotation(6.28318531)];
[UIView commitAnimations];
2
mia soluzione per questo è un po 'hacky in quanto non utilizza l'animazione di base, ma almeno funziona veramente per sempre e non richiede di impostare più passaggi di animazione.
...
// runs at 25 fps
NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:1.0/25
target:self
selector:@selector(rotate)
userInfo:nil
repeats:YES];
[timer fire];
...
- (void)rotate {
static int rotation = 0;
// assuming one whole rotation per second
rotation += 360.0/25.0;
if (rotation > 360.0) {
rotation -= 360.0;
}
animatedView.transform = CGAffineTransformMakeRotation(rotation * M_PI/180.0);
}
Problemi correlati
- 1. Come far rimanere sempre una finestra in cima a .Net?
- 2. Come posso far funzionare il mio server TCP per sempre?
- 3. Come ruotare la vista in orizzontale in un'app tabbar
- 4. Come posso ripetere una transizione per sempre?
- 5. Come ruotare UITableViewCellAccessoryDisclosureIndicator?
- 6. Come ruotare una tabella con d3.js?
- 7. È possibile ruotare automaticamente una vista modale ma non la sua madre?
- 8. Come ruotare l'immagine con jQuery?
- 9. Come far vedere sempre a PyCharm i numeri di linea
- 10. Come posso ruotare una tabella in DB2?
- 11. rendere la transizione css3 ruotare sempre nella stessa direzione
- 12. Come ottengo una matrice in cui tradurre, quindi ruotare, quindi tradurre poi ruotare una seconda volta?
- 13. Come far funzionare UIMenuController per una visualizzazione personalizzata?
- 14. Come ruotare un CannonJS RigidBody?
- 15. Una VISTA SQL dovrebbe sempre essere in 1NF?
- 16. Come per ruotare IEnumerable <T>
- 17. Come ruotare il testo per drawText?
- 18. Utilizzo di Docker-Compose per far ruotare più istanze di un contenitore con diverse configurazioni
- 19. Come ruotare MapView?
- 20. OpenCV: come ruotare IplImage?
- 21. Come far funzionare l'icona dell'app su una vista di ricerca come filtro?
- 22. Come mostrare il PopupWindow sempre sopra il pulsante (vista)?
- 23. Come ruotare la vista della mappa in modo scorrevole con rilevamento in android
- 24. Come sovrascrivere una vista personalizzata (vista surreale)
- 25. Come far funzionare JQuery DatePicker dopo il caricamento dinamico in una vista parziale?
- 26. Come ruotare il testo Swing?
- 27. Algoritmo SIMD ottimale per ruotare o trasporre una matrice
- 28. android come ruotare tela rect
- 29. Come far espandere td (cella) dalla tabella html per far rientrare la riga in una riga?
- 30. Utilizzo di una matrice per ruotare i singoli rettangoli
suona bene! ma come posso impostare l'animazione per far ruotare la vista a 390 gradi e continuare a ruotare? – openfrog
@openfrog, questa è la risposta corretta. Ruota la vista ruotando esplicitamente il livello della vista con un'animazione di base. Continuerà a rotolare se fai ciò che Vladimir ha suggerito. –