我正在使用 CABasicAnimation 为 CALayer 设置动画,并希望在动画完成时图层保持在原位。几乎所有解决方案都显示以下内容,效果很好
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
然而,2010 年 WWDC 演讲者在 Core Animation in Practice Part 1 (~38-41mins) 中说,大多数关于消失层的解决方案都是“伪造的”,而为层设置动画的正确方法大致如下
animation.fromValue = [NSNumber numberWithFloat:layer.position.y];
layer.position = CGPointMake(layer.position.y, endPoint);
animation.toValue = [NSNumber numberWithFloat:endPoint];
给出的原因是removedOnCompletion/fillMode解决方案只冻结了表示层,而实际层仍然有它原来的位置设置。
如果我误解了演讲者,请纠正我。
如果我对他的理解正确,什么时候有关系?
谢谢,史蒂夫