我有一個圖層將從U點移動到UIBezierPath上的B點。 我發現很多樣本是指CAAnimation和UIBezierPath。 但我需要將我的圖層僅從指定點移動到貝塞爾路徑上的另一個點。通過UIBezierPath移動CALayer
任何建議,將不勝感激。
感謝
我有一個圖層將從U點移動到UIBezierPath上的B點。 我發現很多樣本是指CAAnimation和UIBezierPath。 但我需要將我的圖層僅從指定點移動到貝塞爾路徑上的另一個點。通過UIBezierPath移動CALayer
任何建議,將不勝感激。
感謝
我一直希望做這樣的事情,並發現那位本教程,它展示瞭如何按照特定的路徑。它的工作原理與汽車(一CALayer的)和UIBezierpath的賽道和解決順序:
定義的車應該走的道路(在這種情況下,你BezierPath) 畫黑線定義軌道; (N/A) 繪製軌道的白色虛線中心線; (N/A) 創建定義汽車的圖層; (你的圖層) 沿路徑動畫汽車。
你可以在這裏查看基準柱(什麼你問!): http://nachbaur.com/2011/01/07/core-animation-part-4/
你也可以在這裏下載源代碼: http://cdn5.nachbaur.com/wp-content/uploads/2011/01/CALayerAnimTest.zip?25881d
希望這有助於!
關注,
豪爾赫。
如果你的bezier路徑是一個圓或半個圓,你可以跳過路徑,而是將該點添加到一個更大的方形圖層。將該點設置爲距較大方形圖層中心的固定距離。然後,您可以旋轉z軸上圍繞中心的較大圖層,無論需要移動多少度數。似乎它會簡化一些事情,儘管我不確定你到底需要做些什麼。
希望這會有所幫助。
UIBezierPath *trackPath = [UIBezierPath bezierPath];
.
.
.
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
anim.path = trackPath.CGPath;
anim.repeatCount = 1;
anim.duration = 2.0;
[layerToAnimate addAnimation:anim forKey:@"pathGuide"];
爲什麼不只是找出路徑段並使用它作爲動畫路徑 –
看到這個答案:http://stackoverflow.com/questions/1142727/how-can-i-animate-the-movement-沿着一個彎曲的路徑的視圖或圖像 – buildsucceeded