gpt4 book ai didi

objective-c - 防止 CABasicAnimation 中图层消失的正确方法?

转载 作者:太空狗 更新时间:2023-10-30 03:53:17 24 4
gpt4 key购买 nike

我正在使用 CABasicAnimation 对 CALayer 进行动画处理,并希望该层在动画完成时保持在原位。几乎所有解决方案都显示以下内容,效果很好

animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;

然而,2010 年 WWDC 演讲者在核心动画实践第 1 部分(~38-41 分钟)中表示,发现的消失层的大多数解决方案都是“伪造的”,为层设置动画的正确方法大致如下

animation.fromValue = [NSNumber numberWithFloat:layer.position.y];
layer.position = CGPointMake(layer.position.y, endPoint);
animation.toValue = [NSNumber numberWithFloat:endPoint];

给出的原因是removedOnCompletion/fillMode的方案只是卡住了表现层,实际层还是设置了原来的位置。

如果我误解了演讲者的意思,请纠正我。

如果我对他的理解是正确的,那什么时候重要呢?

谢谢,史蒂夫

最佳答案

这取决于你想做什么......你自己的解释似乎很清楚。

如果您只对属性进行动画处理而不改变实际值,那么“所见即所得”实际上不同于“是什么”。大多数时候,你不想要那样。 (并且当你使用UIView动画,或者CALayer隐式动画时,“什么是”和“你看到什么”是同步的,这与直接setter语法是一致的)。

但在某些情况下,保留实际值并在屏幕上临时显示不同的内容可能很有用……只要您知道自己在做什么!

关于objective-c - 防止 CABasicAnimation 中图层消失的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16151504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com