我很好奇当我使用CABasicAnimation
为图层设置动画时会发生什么,所以我在图层的NSLog
中添加了- (void)drawInContext:(CGContextRef)ctx
。但是这种行为很奇怪,它会遍历所有值,然后继续使用最终值或非常接近它进行记录。
CABasicAnimation *animation = [CABasicAnimation animation];
animation.duration = 5.0;
animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = NO;
animation.delegate = self;
animation.fromValue = [NSNumber numberWithInt:255];
animation.toValue = [NSNumber numberWithInt:0];
这会生成以下内容,NSLog
记录动画值。
...
value: 14
value: 13
value: 12
value: 11
value: 10
value: 9
value: 8
value: 7
value: 7
value: 6
value: 5
value: 4
value: 3
value: 3
value: 2
value: 1
value: 0
value: 0
value: 0
value: 0
...
它永远不会停止,它会继续记录0
。为什么这样做?这是否意味着当NSLog
不存在时多次调用此方法?
答案 0 :(得分:2)
你的animation.removedOnCompletion没有
ALSO 有人必须绘制你的图层,以便有时候可以预期