2016-02-26 53 views

回答

1

以下是我如何去做這件事。

  1. 創建CALayer提請您的裝載機 '背景'。不幸的是,在Core Animation或Core Graphics中沒有創建角度漸變的內置方法。您必須使用帶有CAGradientLayer的線性漸變,或者查看AngleGradientLayer

  2. 創建一個CAShapeLayer來定義您的圓弧。然後,您將要使用UIBezierPath+bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise:方法創建弧形路徑。然後,您可以將此路徑分配給CAShapeLayerpath屬性。

  3. 然後,您將要配置CAShapeLayer的撫摸。您需要將lineWidth設置爲您的筆劃寬度,並將lineCap屬性設置爲kCALineCapRound

  4. 將您的CAShapeLayer指定爲您的背景CALayermask屬性。這會將加載器的「背景」掩蓋到描邊路徑。

  5. 將您的背景CALayeras a sublayer改爲的layer。在CAShapeLayer使用屬性的CABasicAnimationstrokeStartstrokeEnd(或創建的UIViewCALayerreturn your custom layer class在視圖的+layerClass方法的子類)

  6. 動畫。

0

我已經做了類似的使用UIBezierPath類。具體的addArcWithCenter功能:

let line = UIBezierPath() 
line.addArcWithCenter(centerPoint, radius: curveRadius, startAngle: startAngle, endAngle: endAngle, clockwise: true) 
color.setStroke() 
line.stroke() 

中心點,curveRadius,由startAngle和endAngle都提前設置。

顏色是一種UIColor,用於給出線條顏色。