0

可能重复:
Objective-C - CABasicAnimation 在动画后应用更改?

使用以下代码,我正在动画绘制一个圆圈:

CAShapeLayer circle = [CAShapeLayer layer];
circle.strokeEnd = 0;
...
[self.view.layer addSublayer:circle];

CABasicAnimation *drawAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
drawAnimation.beginTime = CACurrentMediaTime() + 3;
drawAnimation.duration = 1.0;
drawAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
drawAnimation.toValue = [NSNumber numberWithFloat:1.0f];
drawAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
drawAnimation.removedOnCompletion = NO;
drawAnimation.fillMode  = kCAFillModeForwards;
[circle addAnimation:drawAnimation forKey:@"drawShape"];

虽然这画得很好,但它似乎circle.strokeEnd实际上并没有更新到 1。我该怎么做?

4

0 回答 0