ios – CAKeyframeAnimation:内容在停止时更改回第一个图像

ios – CAKeyframeAnimation:内容在停止时更改回第一个图像,第1张

概述我使用以下代码为CALayer的内容添加动画效果: CAKeyframeAnimation *countanimation = [CAKeyframeAnimation animation];NSArray *images = [NSArray arrayWithObjects:(id)[UIImage imageNamed:@"number3"].CGImage, 我使用以下代码为CALayer的内容添加动画效果:

CAKeyframeAnimation *countanimation = [CAKeyframeAnimation animation];NSArray *images = [NSArray arrayWithObjects:(ID)[UIImage imagenamed:@"number3"].CGImage,(ID)[UIImage imagenamed:@"number2"].CGImage,(ID)[UIImage imagenamed:@"number1"].CGImage,nil];[countanimation setKeyPath:@"contents"];[countanimation setValues:images];[countanimation setCalculationMode:kCAAnimationdiscrete];[countanimation setDuration:3.0f];[countanimation setDelegate:self];[countanimation setautoreverses:NO];[countanimation setRemovedOnCompletion:NO];[countanimation setValue:@"Countdown" forKey:@"name"];[countDown addAnimation:countanimation forKey:nil];

并希望在动画停止时隐藏图层:

- (voID)animationDIDStop:(CAAnimation *)anim finished:(BOol)flag{    if([[anim valueForKey:@"name"] isEqual:@"Countdown"])    {        [countDown setHIDden:YES];        ...    }}

问题是图层使用原始图像(number3)闪烁一次,然后隐藏.

我想知道为什么图层会回到原始图层,即使我将removedOnCompletion设置为NO.

解决方法 您可以将FillMode属性与removedOnCompletion属性结合使用,以在repeatCount结束后将第一帧设置回其内容.

[countanimation setFillMode:kCAFillModeBoth];[countanimation setRemovedOnCompletion:NO];

我认为这两行代码可以帮助您获得所需的结果.

总结

以上是内存溢出为你收集整理的ios – CAKeyframeAnimation:内容在停止时更改回第一个图像全部内容,希望文章能够帮你解决ios – CAKeyframeAnimation:内容在停止时更改回第一个图像所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1053387.html

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

发表评论

登录后才能评论

评论列表(0条)

保存