Sko*_*ota 6 cocoa-touch core-animation cabasicanimation ios ios5
在我的iOS 5应用程序中,我有一个自定义UIButton的红色球体作为其图像.当按下按钮时,我希望orb开始在红色和绿色之间发出脉冲/褪色.我有红色和绿色图像,可以使用以下代码在两者之间成功交叉解析:
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"];
Run Code Online (Sandbox Code Playgroud)
但是,我希望动画能够永久地继续(好吧,直到我告诉它停止)以及动画反转和循环.换句话说,淡红色 - >绿色 - >红色然后重复.
我尝试将上面的动画块放到无限循环中(连同一些逻辑来确定渐变是否应该从红色 - >绿色或绿色 - >红色)但这只是锁定整个应用程序.
其他解决方案似乎使用Cocos2d,这看起来相当重,因为这是我在应用程序中需要的唯一动画(所以除非绝对需要,否则我不想使用这样的框架).
任何帮助将不胜感激.
Don*_*mer 26
是的,你可以在内部做到这一点CABasicAnimation.诀窍在于它的许多最重要的方法都不在CABasicAnimation类参考中,甚至在它的超类中.CABasicAnimation实现了一个名为的协议CAMediaTiming.请参阅CAMediaTiming协议参考.
您想特别了解两个属性:autoreverses和repeatCount.两者都是不言自明的,但如果你想要无限重复呢?从条目repeatCount:
可能是分数.如果repeatCount为0,则忽略它.默认为0.如果同时指定了repeatDuration和repeatCount,则行为未定义.
将此属性设置为HUGE_VALF将导致动画永远重复.
你能从那里解决吗?
| 归档时间: |
|
| 查看次数: |
5894 次 |
| 最近记录: |