レイヤーを一度翻訳した後、レイヤーを元の位置に翻訳しようとしています。変換したレイヤーの位置はいつでもプロパティに保存できますが、もっと良い方法があるようです。私は自分のレイヤーを翻訳するためにこのようなことをしています:
CABasicAnimation *slide = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
slide.byValue = [NSNumber numberWithFloat:translationValue];
slide.duration = duration;
slide.removedOnCompletion = NO;
slide.fillMode = kCAFillModeForwards;
slide.autoreverses = NO;
[layer addAnimation:slide forKey:KEYPATH_POSITION];
次のようなことをしようとしていましたが、これにはアニメーションがなく、元の位置に戻って表示されます。
CABasicAnimation *slide = [CABasicAnimation animationWithKeyPath:@"position"];
slide.toValue = [layer valueForKey:@"position"];
slide.duration = duration;
slide.removedOnCompletion = NO;
slide.fillMode = kCAFillModeForwards;
slide.autoreverses = NO;
[layer addAnimation:slide forKey:KEYPATH_POSITION];