我有兩個CAShapeLayer
S上形成如下顯示:如何旋轉一個圓形的CAShapeLayer弧?
它們與這段代碼創建:
CALayer *layer = [loadingView layer];
CAShapeLayer *circle = [CAShapeLayer layer];
[circle setPath:[[UIBezierPath bezierPathWithOvalInRect:CGRectMake(5, 5, loadingView.bounds.size.width - 10, loadingView.bounds.size.height - 10)] CGPath]];
[circle setStrokeColor:[UIColorFromRGB(0xffffff, .15) CGColor]];
[circle setLineWidth:5];
[circle setFillColor:[[UIColor clearColor] CGColor]];
[layer addSublayer:circle];
CAShapeLayer *arc = [CAShapeLayer layer];
[arc setPath:[[UIBezierPath bezierPathWithArcCenter:CGPointMake(27, 27) radius:22 startAngle:1.25*M_PI endAngle:1.75*M_PI clockwise:YES] CGPath]];
[arc setStrokeColor:[UIColorFromRGB(0xffffff, .8) CGColor]];
[arc setLineWidth:5];
[arc setFillColor:[[UIColor clearColor] CGColor]];
[layer addSublayer:arc];
我想對於較小的,不透明的弧線保留它的大小和無限期地繞着圓圈旋轉。我嘗試過應用一些transform.rotation
動畫,我在otheranswers上找到了動畫,但是最終導致了旋轉到不可預知的方向。
我也試着以同樣的速度提高弧度strokeStart
和strokeEnd
,這個效果我首先得到了效果,但由於這些屬性的性質而無法循環進行。
這樣,如何執行此效果?
這會工作,但它是不必要的,並導致父層必須重新繪製在每個框架的新方向。 –