Je ne pense pas UIKit
animations vous fournir des animations d'images clés directes pour obtenir l'effet d'oscillation. Nous pouvons essayer d'y parvenir en utilisant des délégués en déclenchant une animation après l'autre mais ce n'est pas aussi efficace que CAKeyframeAnimation
. Pour l'utiliser, vous devez inclure le framework QuartzCore
dans votre projet et #import <QuartzCore/QuartzCore.h>
. Vous pouvez obtenir votre effet d'oscillation en faisant quelque chose comme ça,
self.mover.center = CGPointMake(160, 240);
CAKeyframeAnimation *animation;
animation = [CAKeyframeAnimation animationWithKeyPath:@"position.x"];
animation.duration = 3.0f;
animation.repeatCount = 10;
animation.values = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:160.0f],
[NSNumber numberWithFloat:320.0f],
[NSNumber numberWithFloat:160.0f],
[NSNumber numberWithFloat:0.0f],
[NSNumber numberWithFloat:160.0f], nil];
animation.keyTimes = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.25],
[NSNumber numberWithFloat:.5],
[NSNumber numberWithFloat:.75],
[NSNumber numberWithFloat:1.0], nil];
animation.removedOnCompletion = NO;
[self.mover.layer addAnimation:animation forKey:nil];
Ce bout de code oscille en vue de gauche à droite assez proche de votre description, bien que pour obtenir l'effet exact que vous voulez que vous pourriez avoir à changer un peu .
qui était juste un exemple, je ne l'ai pas mis 100 pour x pos en fait, et bien cette réponse n'est pas utile parce que je voulais aller c'est gauche et droite. Vous venez d'expliquer un mouvement de côté que j'ai déjà fait :( – Wasim
@Wasim Votre question ne mentionnait pas qu'il n'y avait pas d'animation du tout, j'ai donc mal compris votre besoin, j'ai mis à jour ma réponse –
@Deepak Merci pour la réponse :) mais vous encore mal compris ma question :) J'ai dit que j'ai à moitié accompli l'animation ce qui signifie que je suis capable d'animer mon UIViewImage du centre vers la droite ou vers la gauche. Mais mon motif principal est de lancer l'animation depuis le centre de l'écran et de la déplacer d'abord vers l'extrême gauche puis vers l'extrême droite. J'espère que ma question est plus claire pour vous maintenant :) Désolé de vous déranger encore une fois :) – Wasim