簡體   English   中英

使用任意起點圍繞圓圈制作動畫視圖

[英]Animate view around circle with arbitrary start point

我試圖圍繞一個橢圓(輪播樣式)旋轉一堆CALayers,如下所示:

CGMutablePathRef path = CGPathCreateMutable();

CGAffineTransform squash = CGAffineTransformMakeScale(1.1, 0.8);
CGAffineTransform squashInv = CGAffineTransformInvert(squash);
CGPoint c = CGPointApplyAffineTransform(centre, squashInv);

CGPathAddArc(path, &squash, c.x, c.y, radius, 2.0*M_PI, 0.0, YES);

CAKeyframeAnimation *pathAni = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAni.path = path;
pathAni.duration = 14.0;
pathAni.calculationMode = kCAAnimationPaced;
CFRelease(path);

除了每個視圖總是在3點鍾位置開始動畫之外,它的效果很好。 現在,我正試圖繞着橢圓的任意點開始每個視圖並想要一些建議。

(我已嘗試過CGMoveArcToPoint,並嘗試在路徑上使用CGAffineTransformMakeRotate旋轉圓圈,但無效)

謝謝你的時間

您是否嘗試過timeOffset屬性( CAMediaTiming協議的一部分)?

計時協議提供了使用兩個屬性在其持續時間內將動畫啟動一定秒數的方法:beginTime和timeOffset。 beginTime指定動畫應該開始的持續時間的秒數,並縮放到動畫圖層的時間空間。 timeOffset指定附加偏移量,但在本地活動時間中指定。 將兩個值組合以確定最終的起始偏移。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM