CABasicAnimation *transformAnima = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
transformAnima.fromValue = @(0);
transformAnima.toValue = @(M_PI_2);
transformAnima.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
CABasicAnimation *positionAnima = [CABasicAnimation animationWithKeyPath:@"position.y"];
positionAnima.fromValue = @(self.starView.center.y);
positionAnima.toValue = @(self.starView.center.y - 14);
positionAnima.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
CAAnimationGroup *animGroup = [CAAnimationGroup animation];
animGroup.duration = jumpDuration;
animGroup.fillMode = kCAFillModeForwards;
animGroup.removedOnCompletion = NO;
animGroup.delegate = self;
animGroup.animations = @[transformAnima,positionAnima];
[self.starView.layer addAnimation:animGroup forKey:@"jumpUp"];
CAAnimationDelegate
-
animationDidStart:
if ([anim isEqual:[self.starView.layer animationForKey:@"jumpUp"]]) {}
- 细节优化:图标阴影根据图片的大小做缩放
-
animationDidStop:
- 衔接第二段动画
- 动画结束后从layer上移除动画
网友评论