HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – CAAnimationGroup在完成时恢复到原始位置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在iOS中,我试图创建一个缩小图标的图标效果,并在逐渐消失时以弧形飞过屏幕,然后消失.我已经使用CAAnimationGroup实现了这三种效果,它可以实现我想要的效果.问题是当动画结束时,视图显示在原始位置,完整大小和完全不透明度.谁能在下面的代码中看到我做错了什么?
动画不应该恢复到它的原始位置,而是在最后消失.

UIBezierPath *movePath = [UIBezierPath bezierPath];
CGPoint libraryIconCenter = CGPointMake(610,40);

CGPoint ctlPoint = CGPointMake(self.imgViewCropped.center.x,22.0);
movePath moveToPoint:self.imgViewCropped.center];
[movePath addQuadCurveToPoint:libraryIconCenter
              controlPoint:ctlPoint];

 CAKeyframeAnimation *moveAnim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
 moveAnim.path = movePath.CGPath;
 moveAnim.removedOnCompletion = NO;

 CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"];
 scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
 scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1,0.1,1.0)];
 scaleAnim.removedOnCompletion = NO;

 CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"alpha"];
 opacityAnim.fromValue = [NSnumber numberWithFloat:1.0];
 opacityAnim.toValue = [NSnumber numberWithFloat:0.0];
 opacityAnim.removedOnCompletion = NO;

 CAAnimationGroup *animGroup = [CAAnimationGroup animation];
 animGroup.animations = [NSArray arrayWithObjects:moveAnim,scaleAnim,opacityAnim,nil];
 animGroup.duration = 0.6;
 animGroup.delegate = self;
 animGroup.removedOnCompletion = NO;
 [self.imgViewCropped.layer addAnimation:animGroup forKey:nil];

解决方法

我相信你需要将动画的fillmode属性设置为kCAFillmodeForWARDs.这应该在结束时冻结动画.另一个建议(老实说,这是我通常做的)只是在你设置动画之后将图层本身的属性设置到它们的最终位置.这样,当移除动画时,图层仍将最终属性为其模型的一部分.

另外,忽略CAAnimationGroup中包含的动画的removedOnCompletion标志.您可能只是删除这些作业,因为它们会产生误导.将它们替换为fillmode的赋值,如上所述.

大佬总结

以上是大佬教程为你收集整理的ios – CAAnimationGroup在完成时恢复到原始位置全部内容,希望文章能够帮你解决ios – CAAnimationGroup在完成时恢复到原始位置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。