我是iOS应用开发的新手。我正在使用CABasicAnimation在我的应用程序屏幕上水平绘制一条线。我成功地绘制了线但是我无法控制动画的速度。
以下是绘制线的代码。
-(void)drawLine{
_boxPath = [UIBezierPath bezierPath];
[_boxPath moveToPoint:CGPointMake(0.0,60.0)];
[_boxPath addLineToPoint:CGPointMake(self.view.bounds.size.width/2, 60.0)];
CAShapeLayer *layer = [CAShapeLayer layer];
layer.frame = self.view.bounds;
layer.strokeColor = [[UIColor redColor] CGColor];
layer.fillColor = [[UIColor blueColor] CGColor];
layer.lineWidth = 5.0f;
layer.lineJoin = kCALineJoinBevel;
layer.path = _boxPath.CGPath;
layer.speed = 3.0;
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"line"];
animation.duration = 3.0;
[self.view.layer addSublayer:layer];
[layer addAnimation:animation forKey:@"line"];
}
无论我为图层速度和动画持续时间改变什么值,动画速度都没有变化。我想减慢画线的速度。
任何建议都会有很大的帮助
答案 0 :(得分:2)
你的代码是无稽之谈。三点:
如果您要使用隐式动画,则可以使用CATransaction setAnimationDuration:
来设置更长的持续时间。
如果您要使用显式动画,请正确使用。创建CABasicAnimation只是添加它什么都不做;你需要先配置它。没有"线"关键路径让你的动画毫无意义。
你无法动画。您必须在某些内容中为更改设置动画。您可能希望设置动画的是strokeEnd
从零变为一。