i animieren (move) eine Unterklasse UIImageView wie folgt aus:Animieren UIView - Wie man die Position verfolgt?
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 1];
[UIView setAnimationDelay:0];
[UIView setAnimationCurve: UIViewAnimationCurveEaseOut];
[UIView setAnimationBeginsFromCurrentState:YES];
if (position == 0) position = 1;
if (position > 6) position--;
self.transform = CGAffineTransformMakeTranslation(position*120, 0);
[UIView commitAnimations];
dann, ich will es hervorzuheben, indem wir sie pulsieren:
CAKeyframeAnimation *bounce = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
CATransform3D forward = CATransform3DMakeScale(1.3, 1.3, 1);
CATransform3D back = CATransform3DMakeScale(0.7, 0.7, 1);
CATransform3D forward2 = CATransform3DMakeScale(1.2, 1.2, 1);
CATransform3D back2 = CATransform3DMakeScale(0.9, 0.9, 1);
[bounce setValues:[NSArray arrayWithObjects:
[NSValue valueWithCATransform3D:CATransform3DIdentity],
[NSValue valueWithCATransform3D:forward],
[NSValue valueWithCATransform3D:back],
[NSValue valueWithCATransform3D:forward2],
[NSValue valueWithCATransform3D:back2],
[NSValue valueWithCATransform3D:CATransform3DIdentity],
nil]];
[bounce setDuration:0.6];
[[super layer] addAnimation:bounce forKey:@"bounceanimation"];
Das alles funktioniert. Es wird um 120 Pixel verschoben, aber wenn ein Anruf den pulsierenden Code auslöst, pulsiert es an seiner ursprünglichen Position, nicht wo ich es gerade bewegt habe. warum ist das und wie kann ich es ändern?
tobias
endlich bekam es! Vielen Dank! änderte das in [self setFrame: CGRectMake (30 + position * 120, self.frame.origin.y, self.frame.size.width, self.frame.size.height)]; –
Kein Problem! Freue mich zu helfen! – David