gpt4 book ai didi

objective-c - 如何创建可以在中间停止而不跳到动画末尾的淡入/淡出动画?

转载 作者:行者123 更新时间:2023-11-28 20:27:30 26 4
gpt4 key购买 nike

我需要淡入和淡出图像,在某些情况下我需要停止动画并反转它。例如:图像开始从 alpha 0 淡入到 1,然后是 0.4,由于一些用户输入,我需要将它淡出,从 0.4 到 0;

我尝试使用 animateWithDuration 和 stopAllAnimations,但结果是动画跳转到目标 alpha ( = 1)。

我想到了CADisplayLink,自己一帧一帧做动画,后来看了看性能不是很好。我尝试使用 CALayers 和 PresentationLayer,但它变得复杂,而且无法正常工作。

最好的方法是什么?谁能通过一个小例子帮助我解决这个问题?

最佳答案

UIView animateWithDuration 方法在底层创建 Core Animation 对象以使动画工作。 CAAnimation 为 View 层的 presentationLayer 设置动画。您可以查询表示层以获取动画进行中的状态。

我的建议是:

像现在一样使用 animateWithDuration:animations:。

如果您需要在飞行途中停止动画,请获取 View 层的表示层,并捕获 alpha 属性的值。

然后将 View 的不透明度设置为“飞行中”值,并向图层发送 removeAllAnimations 消息。这将具有在当前状态停止动画的效果。

最后,使用新的反向动画调用新的 animateWithDuration:animations: 语句。

关于objective-c - 如何创建可以在中间停止而不跳到动画末尾的淡入/淡出动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13514707/

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