我正在学习一种不同的方法来创建自定义指标。下面是使用 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 是什么以及它的用途。当我尝试使用
我不明白这些插值值的想法。在互联网上搜索,但仍然无法获得它的全貌。
如果您对此有任何想法,请提供帮助。感谢所有评论。
最佳答案
CABasicAnimations 可能有点难以理解,但与动画相关的属性真的没有那么难,一旦你可以想象它们想要完成的事情。例如,如果我有一个代表图层的红色方块,我想将它旋转 360°(就像你在那里做的那样),那么我必须初始化一个动画对象,告诉它我想要动画的内容,以及在哪里我想要动画去。
您提供的动画会改变 CALayer 的内部矩阵,使其在给定的持续时间内从当前位置(因为您尚未指定 2 * M_PI
)旋转到给定值(在本例中为 fromValue
或 360˚)。给定值告诉动画在给定的时间段内,您希望动画在提供的持续时间内通过 插入(或移动) 给定值(例如,您可以将动画分成 45°“块”通过指定 byValue
的 @(M_PI/2)
)。默认的 byValue 是动画持续时间内 toValue
和 fromValue
的差值的除法,使得动画流畅且连续。
因此,您可以将动画视为 从 图层的初始旋转 值 , 到 图层的新旋转 值 , 由 时间段的 或 值
关于iphone - 难以理解 toValue, byValue of CABasicAnimation, ios,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14914445/