iphone - 很难理解toValue, byValue of CABasicAnimation, ios

标签 iphone ios objective-c core-animation cabasicanimation

我正在学习一种不同的方法来创建自定义指标。下面是使用 CABasicAnimation 实现任务的教程中的部分代码。

-(void)spin
{
    CABasicAnimation *spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    spinAnimation.toValue           = [NSNumber numberWithFloat:2*M_PI];
    spinAnimation.duration          = self.animationDuration;
    spinAnimation.delegate          = self;
    [self.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
}

第 2 行的 toValue 是什么,它的用途是什么。当我尝试使用

spinAnimation.byValue = [NSNumber numberWithFloat:2*M_PI];

我不明白这些插值。正在互联网上搜索,但仍然无法了解它的全貌。 如果您对此有任何想法,请提供帮助。感谢所有评论。

最佳答案

CABasicAnimations 可能有点难以理解,但与动画相关的属性实际上并没有那么难,一旦您可以想象他们试图完成的事情。例如,如果我有一个代表图层的红色方 block ,我想将它旋转 360˚(就像你在那里做的那样),那么我必须初始化一个动画对象,告诉它我想要动画的内容,以及在哪里我想让动画继续。

您提供的动画会改变 CALayer 的内部矩阵,使其从当前位置旋转到给定值(在本例中为 2 * M_PI,或 360˚)(因为您在给定的持续时间内没有指定 fromValue)。按值给定告诉动画在给定的时间段内,您希望动画在提供的持续时间内通过给定值插入(或移动)(例如,您可以将动画分 block 到通过指定 @(M_PI/2)byValue 来“阻止”45˚。默认的 byValue 是 toValuefromValue 在动画持续时间内的差值的除法,以便动画流畅且连续。

enter image description here

因此,您可以将动画视为从层的初始旋转层的新旋转通过在一段时间内插入给定的数量或

关于iphone - 很难理解toValue, byValue of CABasicAnimation, ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914445/

相关文章:

iphone - 在 IOS 上使用 AFNetworking 流式传输 JSON

iphone - 在 Xcode 中编译 sqlite 项目时出错

ios - 验证失败时防止光标移动

objective-c - NSSound 几个小时后停止工作

java - 用另一种语言包装 C++ 对象的策略——内存管理

iOS 在资源中加载本 map 片,并在 <img src ='%@' > 中显示

iphone - 使用 avaudioplayer 从 iPod 音乐库播放 .m4a 文件

ios - 在 Flutter iOS 中将 jpg 图像转换为 png 图像

ios - 如何在自定义容器 View Controller 中实现交互式转换

ios - 如何禁用 MFMessageComposeViewController 中的附件按钮?