2016-02-26 57 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,用于给出线条颜色。