2016-02-26 2 views

ответ

1

Вот как я буду заниматься этим.

  1. Создать CALayer нарисовать свой 'фон' для загрузчика. К сожалению, нет встроенного способа создания градиента угла в Core Animation или Core Graphics. Вам придется либо использовать линейный градиент с CAGradientLayer, либо посмотреть на AngleGradientLayer.

  2. Создайте CAShapeLayer, чтобы определить круговую дугу. Затем вы захотите создать путь дуги, используя метод +bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise:. Затем вы можете назначить этот путь для свойства CAShapeLayerpath.

  3. Затем вы хотите настроить поглаживание CAShapeLayer. Вы хотите установить lineWidth на ширину вашего хода и установить lineCap на kCALineCapRound.

  4. Присвойте CAShapeLayermask имущество вашего фона CALayer. Это замаскирует «фон» вашего загрузчика на поглаженный путь.

  5. Добавить фон CALayeras a sublayer к UIView «s layer. (Или создать подкласс UIView и CALayer и return your custom layer class в +layerClass методе представления)

  6. Animate с использованием CABasicAnimation из strokeStart и strokeEnd свойства на CAShapeLayer.

0

Я сделал что-то подобное, используя класс UIBezierPath. В частности, функция addArcWithCenter:

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

Centerpoint, curveRadius, StartAngle и endAngle все готово заранее.

Цвет UIColor и используется, чтобы дать цвет линии.