Comment faire pivoter UIView
, UIImageView
ou CALayer
animé 360 degress sans utiliser OpenGL ES?Comment faire pivoter UIView, UIImageView ou CALayer 360˚?
5
A
Répondre
3
Vraisemblablement, vous voulez dire animer en tournant un UIImage
autour d'un 360 °? Dans mon expérience, la façon d'accomplir une rotation complète du cercle est à chaîne multiples animations ensemble:
- (IBAction)rotate:(id)sender
{
[UIView beginAnimations:@"step1" context:NULL]; {
[UIView setAnimationDuration:1.0];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView setAnimationDelegate:self];
[imageView.transform = CGAffineTransformMakeRotation(120 * M_PI/180);
} [UIView commitAnimations];
}
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
{
if ([animationID isEqualToString:@"step1"]) {
[UIView beginAnimations:@"step2" context:NULL]; {
[UIView setAnimationDuration:1.0];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView setAnimationDelegate:self];
imageView.transform = CGAffineTransformMakeRotation(240 * M_PI/180);
} [UIView commitAnimations];
}
else if ([animationID isEqualToString:@"step2"]) {
[UIView beginAnimations:@"step3" context:NULL]; {
[UIView setAnimationDuration:1.0];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView setAnimationDelegate:self];
imageView.transform = CGAffineTransformMakeRotation(0);
} [UIView commitAnimations];
}
}
J'ai quitté la courbe easeIn/easeOut
(au lieu de linéaire) en place, afin que vous puissiez voir les animations individuelles.
28
#import <QuartzCore/QuartzCore.h>
CABasicAnimation *fullRotation;
fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
fullRotation.fromValue = @(0.0);
fullRotation.toValue = @((360.0 * M_PI)/180.0);
fullRotation.duration = 3.5f;
fullRotation.repeatCount = MAXFLOAT;
[view.layer addAnimation:fullRotation forKey:@"rotation-animation"];
Si vous voulez changer le point d'ancrage à tourner autour alors vous pouvez faire
CGRect frame = view.layer.frame;
self.anchorPoint = CGPointMake(0.5, 0.5); // rotates around center
self.frame = frame;
Questions connexes
- 1. Comment faire pivoter un UIImageView?
- 2. Comment faire pivoter deux UIView?
- 3. Comment faire pour faire pivoter UIImageView en mode circulaire 3D?
- 4. iPhone: Comment faire pivoter une UIImageview gauche ou droite?
- 5. comment faire pivoter UIIMageVIew avec point fixe?
- 6. Comment faire pivoter l'image QTVR 360 degrés dans iPhone?
- 7. Comment ne pas déformer faire pivoter une image dans UIImageView dans UIView lorsque le périphérique tourne?
- 8. Comment faire pivoter une sous-classe NSView soutenue par CALayer
- 9. Faire pivoter UIView dans Cocoa Touch
- 10. Faire pivoter UIView sur un Pivot
- 11. Faire pivoter UIView en utilisant UITouch
- 12. Ordre d'affichage CALayer et UIView
- 13. Faire pivoter un UIImageView avec un geste tactile - iphone dev
- 14. faire pivoter uiview en utilisant le toucher (ipad et iphone)
- 15. Comment faire un UIView circulaire
- 16. UIScrollView -> UIView -> UIImageView
- 17. Transformer (faire pivoter) un UIBarButtonItem
- 18. faire pivoter une UIImage ou UIView à un angle particulier, et non une quantité d'angle
- 19. Devrais-je composer un UIView complexe avec plus de UIView ou plus de CALayer?
- 20. Puis-je utiliser CGAffineTransformMakeRotation pour faire pivoter une vue de plus de 360 degrés?
- 21. comment faire CALayer auto-tournante
- 22. CALayer Shadows disparaissant lors d'une animation UIView
- 23. Comment forcer un UIView "conteneur" à ne pas avoir CALayer?
- 24. Comment faire pivoter une div
- 25. comment faire pivoter l'objet pile?
- 26. Sous-classe UIView ou composer avec UIView
- 27. Comment ajouter un CALayer nu comme "subview" à un UIView?
- 28. iPhone, Comment faire pivoter un UIImageView autour d'un point en utilisant Core Animation et CATransform3D?
- 29. Performances de CALayer par rapport aux performances UIImageView
- 30. Rotation de deux UIImageViews 360 degrés
Vous vous rendez compte que la rotation 360˚ vous donnera exactement la même image à droite? – SteamTrout
Je trouve triste que j'ai commencé à essayer de penser à une solution avant de m'en rendre compte. – jtbandes
@Truit à la vapeur: seulement si vous voulez qu'il soit instantané. – JeremyP