iOS 讓物體進行曲線運動
阿新 • • 發佈:2019-02-19
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