私のアプリケーションでは、以下のようにkeyPathframe
を使用して次のアニメーションを追加しようとしています
CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"frame"];
animation.duration=0.6;
animation.repeatCount=1;
animation.delegate=self;
animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
animation.fromValue=[NSValue valueWithCGRect:self.layer.frame];
animation.toValue=[NSValue valueWithCGRect:rect];//rect is a new frame
[self.layer addAnimation:animation forKey:@"frameChange"];
[self setFrame:rect];
上記のメソッドではアニメーションは発生していませんが、デリゲートメソッドが正常にanimationDidStop:(CAAnimation *)anim finished:
呼び出されました。
しかし、プロパティを配置するための以下のアニメーションはうまく機能しています
CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"position"];
animation.duration=0.6;
animation.repeatCount=1;
animation.delegate=self;
animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
animation.fromValue=[NSValue valueWithCGPoint:self.layer.position];
animation.toValue=[NSValue valueWithCGPoint:rect.origin];
[self.layer addAnimation:animation forKey:@"frameChange"];
フレームプロパティがアニメーション化されないのはなぜですか?