我的NSLog内部drawInContext永远不会停止

时间:2014-07-12 21:40:03

标签: ios objective-c

我很好奇当我使用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不存在时多次调用此方法?

1 个答案:

答案 0 :(得分:2)

你的animation.removedOnCompletion没有

ALSO 有人必须绘制你的图层,以便有时候可以预期