私は CABasicAnimation を使用して CALayer をアニメーション化しており、アニメーションが完了したときにレイヤーがその位置に留まることを期待しています。ほぼすべてのソリューションが次のように表示され、正常に動作します
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
ただし、Core Animation in Practice Part 1 (~38-41mins) の 2010 WWDC スピーカーは、見つかった消えるレイヤーに対する解決策のほとんどは「偽物」であり、レイヤーをアニメーション化する正しい方法はおおよそ次のとおりであると述べています。
animation.fromValue = [NSNumber numberWithFloat:layer.position.y];
layer.position = CGPointMake(layer.position.y, endPoint);
animation.toValue = [NSNumber numberWithFloat:endPoint];
この理由は、removedOnCompletion/fillMode ソリューションはプレゼンテーション レイヤーのみをフリーズし、実際のレイヤーにはまだ元の位置が設定されているためです。
スピーカーを誤解している場合は、訂正してください。
私が彼を正しく理解していれば、いつそれが問題になるのですか?
ありがとう、スティーブ