我正在学习一种创建自定义指标的不同方法。下面是使用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];
我不明白这些插值。通过互联网搜索,但仍然无法全面了解它.. 如果您有任何想法,请帮忙。所有评论都表示赞赏。
答案 0 :(得分:3)
CABasicAnimations可能有点难以理解,但是一旦你可以想象他们想要完成什么,与动画相关的属性真的不那么难。例如,如果我有一个代表一个图层的红色方块,并且我想将它旋转360˚(就像你在那里那样),那么我必须初始化一个动画对象,告诉它我想要制作动画,以及我想要动画。
您提供的动画会改变CALayer的内部矩阵,使其从当前位置旋转到给定值(在这种情况下,2 * M_PI
或360˚)(因为您没有指定fromValue
}超过给定的持续时间。给定的值告诉动画在给定的时间段内,您希望动画在提供的持续时间内插入(或移动) 给定的值(例如,您可以将动画插入到通过指定byValue
@(M_PI/2)
来45˚“阻止”。默认的byValue是动画持续时间内toValue
和fromValue
之差的除法,这样动画就可以流畅连续。
所以,您可以将动画视为从图层的初始旋转值,到图层的新旋转值,按插入给定数量或值一段时间。
答案 1 :(得分:-2)
您可以理解“ byValue”的含义以及原始值。