1. 程式人生 > >iOS 讓物體進行曲線運動

iOS 讓物體進行曲線運動

iOS 開發中有時候需要對某些物體進行簡單的動畫處理

比如frame變大變小

,或者是位置改變

目前的位置改變動畫,其中有些需要實現曲線運動。

曲線運動該使用什麼樣的方法呢?

答案是 layer的postion動畫可以實現。

一個簡單的曲線運動的動畫可以這麼寫:

        CGMutablePathRef path = CGPathCreateMutable();
        CGPathMoveToPoint(path, NULL, startPoint.x, startPoint.y);
        CGPathAddQuadCurveToPoint(path, NULL, controlPoint.x , controlPoint.y, endPoint.x, endPoint.y);
        CAKeyframeAnimation *animate = [CAKeyframeAnimation animationWithKeyPath:@"position"];
        animate.delegate =self;
        animate.duration = 1.5;
        animate.fillMode = kCAFillModeForwards;
        animate.repeatCount = 0;
        animate.path = path;
        animate.removedOnCompletion = NO;
        CGPathRelease(path);
        [self.panda.layer addAnimation:animate forKey:@"jakillTest"];

上述可以實現一個 物體的 曲線運動動畫。原理就是使用到了 CGMutablePathRef

向其中新增一些路徑,

動畫開始時講路徑賦值給 layer層便可。

詳細的程式碼見demo

demo