【发布时间】:2013-04-25 22:49:45
【问题描述】:
考虑以下动画:
CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
pathAnimation.duration = 1.0;
pathAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];
pathAnimation.removedOnCompletion = NO;
pathAnimation.delegate = self;
这实际上将动画从一端到另一端的图层绘制。问题是一旦动画完成,strokeEnd 属性会重置回 0(最初设置的位置)。如何使最终值“坚持”?
我试图在 animationDidStop 委托方法中改变它。这主要是有效的,但可能会导致 strokeEnd 在 0 处短暂闪烁,即使放在 CATransaction 中以禁用动画也是如此。我也玩过additive 和cumulative 属性,但无济于事。有什么建议吗?
【问题讨论】:
-
我发现在我的实际图层上设置属性更容易,然后应用指定时间和缓动的动画。在某些情况下,我会特别指定起始值,但让结束值自动设置动画可以解决这个问题。
标签: ios core-animation calayer