comment faire tourner une image en continu
J'ai une roue de l'image .format png, je veux savoir comment puis-je animer pour qu'il tourne en permanence, j'ai cherché sur stackoverflow et trouvé certaines des bouts de code qui m'a permis de faire tourner mon image, mais il ne tourne pas en continu, il suffit de tourner pendant quelques secondes avant de s'arrêter, le code comme suit
le code dans viewdidload
UIImageView *imageToMove =
[[UIImageView alloc] initWithImage:[UIImageimageNamed:@"horo_circle.png"]];
[self.view addSubview:imageToMove];
[self rotateImage:imageToMove duration:5.0
curve:UIViewAnimationCurveEaseIn degrees:180];
et l'animation
- (void)rotateImage:(UIImageView *)image duration:(NSTimeInterval)duration
curve:(int)curve degrees:(CGFloat)degrees
{
//Setup the animation
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve:curve];
[UIView setAnimationBeginsFromCurrentState:YES];
//The transform matrix
CGAffineTransform transform =
CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(degrees));
image.transform = transform;
//Commit the changes
[UIView commitAnimations];
}
et les lignes suivantes après l'importation
#define M_PI 3.14159265358979323846264338327950288 /* pi */
#define DEGREES_TO_RADIANS(angle) (angle / 180.0 * M_PI)
- Il y a d'autres questions que demander exactement ce continu (spin) Ma réponse à la même question ici
- double possible de UIView Infini rotation de 360 degrés de l'animation?
Vous devez vous connecter pour publier un commentaire.
Vous êtes mieux de le faire avec un
CABasicAnimation
:Dans ce code, je l'ai vérifier si l'animation est tous ensemble prêt, pas besoin de régler à nouveau.
Le
spinnerOverlay
est dans votre cas, laUIImageView
vous souhaitez faire pivoter.Pour arrêter l'animation:
viewDidLoad
, de l'envelopper dans undispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(NSEC_PER_MSEC * 1000)), dispatch_get_main_queue(), ^{ ... }
blocLe code soufflet va tourner un UIImageView appelé iconView continiously jusqu'à rotate == PAS de.
L'image sera toujours revenir à sa position d'origine.
C'est une variation sur le même thème.
(Durée totale: 2 * 0.5 = 1 s pour un tour)
Fonctionne comme par magie!
Voici une autre façon de le faire avec une minuterie.
Dans votre viewController.h fichier, vous devez déclarer votre minuterie et de l'image:
Prochaine, dans votre ViewController.m, vous ajoutez ce code et peut rendre le spin aller plus vite par l'abaissement de l'intervalle de temps ou par l'augmentation de la transformation de l'intervalle.
Espérons que cette aide!
Maintenant que nous sommes à iOS6, veuillez envisager de passer à bloquer les animations (qui sont disponibles depuis iOS 4.0) plutôt que la méthode classique. Essayez ceci:
À l'aide de la méthode que vous avez choisi pour les animations :
ou, vous pouvez spécifier le
UIViewAnimationOptionRepeat
drapeau dans les blocs méthodeanimateWithDuration:delay:options:animations:completion: