というタイトルで、はじめて Qiita に投稿してみました。
(Twitter/Github/Hatena と同じ shu223 というIDです)
ちなみにこんなコード。
+ (void)startJump:(UIView *)view startPos:(CGPoint)startPos targetPos:(CGPoint)targetPos height:(CGFloat)height duration:(NSTimeInterval)duration { CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; pathAnimation.calculationMode = kCAAnimationPaced; pathAnimation.fillMode = kCAFillModeForwards; pathAnimation.removedOnCompletion = NO; CGMutablePathRef curvedPath = CGPathCreateMutable(); CGPathMoveToPoint(curvedPath, NULL, startPos.x, startPos.y); CGPathAddCurveToPoint(curvedPath, NULL, startPos.x, startPos.y - height, targetPos.x, startPos.y - height, targetPos.x, targetPos.y); pathAnimation.path = curvedPath; CGPathRelease(curvedPath); pathAnimation.duration = duration; [view.layer addAnimation:pathAnimation forKey:@"curveAnimation"]; }
ちなみに、アニメーション完了後に処理をさせたい場合は、CAAnimation のプロパティにある delegate を指定してやれば、
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;
が呼ばれます。