通过CABasicAnimation,ios的价值,努力去理解价值

时间:2013-02-16 19:49:50

标签: 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];

我不明白这些插值。通过互联网搜索,但仍然无法全面了解它.. 如果您有任何想法,请帮忙。所有评论都表示赞赏。

2 个答案:

答案 0 :(得分:3)

CABasicAnimations可能有点难以理解,但是一旦你可以想象他们想要完成什么,与动画相关的属性真的不那么难。例如,如果我有一个代表一个图层的红色方块,并且我想将它旋转360˚(就像你在那里那样),那么我必须初始化一个动画对象,告诉它我想要制作动画,以及我想要动画。

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

enter image description here

所以,您可以将动画视为图层的初始旋转图层的新旋转插入给定数量或一段时间。

答案 1 :(得分:-2)

您可以理解“ byValue”的含义以及原始值。