ios – CAAnimationGroup在完成时恢复到原始位置

ios – CAAnimationGroup在完成时恢复到原始位置,第1张

概述在iOS中,我试图创建一个缩小图标的图标效果,并在逐渐消失时以弧形飞过屏幕,然后消失.我已经使用CAAnimationGroup实现了这三种效果,它可以实现我想要的效果.问题是当动画结束时,视图显示在原始位置,完整大小和完全不透明度.谁能在下面的代码中看到我做错了什么? 动画不应该恢复到它的原始位置,而是在最后消失. UIBezierPath *movePath = [UIBezierPath b 在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在完成时恢复到原始位置所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1016741.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存