Iphone 保持恒定的速度
我正在尝试创建一个简单的动画,它将始终保持恒定的速度,即使动画必须经过的距离不同。这是到目前为止我的代码,它滚动的标签大小总是不同的,但还不能保持恒定的速度。非常感谢你的帮助Iphone 保持恒定的速度,iphone,objective-c,ios,ipad,uilabel,Iphone,Objective C,Ios,Ipad,Uilabel,我正在尝试创建一个简单的动画,它将始终保持恒定的速度,即使动画必须经过的距离不同。这是到目前为止我的代码,它滚动的标签大小总是不同的,但还不能保持恒定的速度。非常感谢你的帮助 CABasicAnimation *theAnimation; theAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"]; theAnimation.speed = 1.0f; NSNumber *fromValue
CABasicAnimation *theAnimation;
theAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
theAnimation.speed = 1.0f;
NSNumber *fromValue = [NSNumber numberWithFloat:self.mainLabel.frame.origin.x];
NSNumber *toValue = [NSNumber numberWithFloat:-self.mainLabel.frame.size.width - self.view.frame.size.height];
theAnimation.fromValue = fromValue;
theAnimation.toValue = toValue;
//theAnimation.duration = toValue.floatValue - fromValue.floatValue;//Not right.
theAnimation.repeatCount = 999;
theAnimation.autoreverses = NO;
[mainLabel.layer addAnimation:theAnimation forKey:@"animateLayer"];
您是否尝试添加:
theAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
例如
theAnimation.speed = 1.0f;
?
此函数用于设置动画的线性速度。是否尝试添加:
theAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
例如
theAnimation.speed = 1.0f;
?
此函数设置动画的线性速度。是的,我尝试过,但动画已经是线性的。问题是不同的标签大小会产生不同的动画速度。它将以恒定速率滚动,但当标签大小更改时,它将以不同的恒定速率滚动。这是因为动画要覆盖的距离或多或少。这是动画重新开始时,使用不同的标签+大小。可能需要用于此关键帧动画,因此设置“检查点”,在其中更改系数以保存持久动画。这是一个很好的动画例子(唯一的例子)。嗯,也许是这样,但我想我可能已经用这个
theAnimation.duration=(fromValue.floatValue-toValue.floatValue)/440实现了它代码>看,如果您将此动画应用于不同大小的不同标签,则需要以不同的速率排列。然后检查并设置此速率,具体取决于所应用的标签。所以对于一个标签,animation.duration的值是正常的,但对于另一个标签,这个值太小或太大。是的,我尝试过,但动画已经是线性的。问题是不同的标签大小会产生不同的动画速度。它将以恒定速率滚动,但当标签大小更改时,它将以不同的恒定速率滚动。这是因为动画要覆盖的距离或多或少。这是动画重新开始时,使用不同的标签+大小。可能需要用于此关键帧动画,因此设置“检查点”,在其中更改系数以保存持久动画。这是一个很好的动画例子(唯一的例子)。嗯,也许是这样,但我想我可能已经用这个theAnimation.duration=(fromValue.floatValue-toValue.floatValue)/440实现了它代码>看,如果您将此动画应用于不同大小的不同标签,则需要以不同的速率排列。然后检查并设置此速率,具体取决于所应用的标签。所以对于一个标签,animation.duration的值是正常的,但对于示例中的另一个标签,这个值太小或太大。