gpt4 book ai didi

ios - 使用 Core Animation 的循环、可逆动画

转载 作者:可可西里 更新时间:2023-11-01 03:35:57 26 4
gpt4 key购买 nike

在我的 iOS 5 应用程序中,我有一个自定义的 UIButton,它的图像是一个红色的球体。当点击按钮时,我希望球体开始在红色和绿色之间闪烁/褪色。我有红色和绿色图像,可以使用以下代码在两者之间成功交叉溶解:

CABasicAnimation *imageSwitchAnimation = [CABasicAnimation animationWithKeyPath:@"contents"];       
imageSwitchAnimation.fromValue = (id)[UIImage imageNamed:@"red.png"].CGImage;
imageSwitchAnimation.toValue = (id)[UIImage imageNamed:@"green.png"].CGImage;
imageSwitchAnimation.duration = 1.5f;
[self.button.imageView.layer addAnimation:imageSwitchAnimation forKey:@"animateContents"];

但是,我希望动画永远持续下去(好吧,直到我告诉它停止),并且还希望动画反转和循环。换句话说,淡出红色 -> 绿色 -> 红色,然后重复。

我尝试将上面的动画 block 置于无限循环中(结合一些逻辑来确定渐变应该从红色 -> 绿色还是绿色 -> 红色)但这只会锁定整个应用程序。

其他解决方案似乎使用 Cocos2d,它看起来相当重量级,因为这是我在应用程序中唯一需要的动画(所以我不想使用这样的框架,除非绝对需要)。

如有任何帮助,我们将不胜感激。

最佳答案

是的,您可以在 CABasicAnimation 中执行此操作。诀窍在于它的许多最重要的方法都不在 CABasicAnimation Class Reference 中。 ,甚至在它的父类(super class)中。 CABasicAnimation 实现了一个名为 CAMediaTiming 的协议(protocol)。查看CAMediaTiming Protocol Reference .

您想特别了解两个属性:autoreversesrepeatCount。两者都是不言自明的,但如果你想要无限重复怎么办?来自 repeatCount 的条目:

May be fractional. If the repeatCount is 0, it is ignored. Defaults to 0. If both repeatDuration and repeatCount are specified the behavior is undefined.

Setting this property to HUGE_VALF will cause the animation to repeat forever.

你能从那里解决吗?

关于ios - 使用 Core Animation 的循环、可逆动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161120/

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