2016-05-18 5 views
0

У меня есть круг, который заполняется на основе процента, но мне нужно, чтобы он имел многоцветную границу, то есть 0-.10 оранжевый, .10-.50 синий, .50-.70 фиолетовый и. 70-1 - черный.Как получить многоцветную рамку?

let circlePath = UIBezierPath(arcCenter: CGPointMake(cell.progress.frame.width/2, cell.progress.frame.height/2), radius: CGFloat(60), startAngle: CGFloat(-M_PI_2), endAngle:CGFloat(M_PI * 2 * percentage - M_PI_2), clockwise: true) 

    let shapeLayer = CAShapeLayer() 
    shapeLayer.path = circlePath.CGPath 


    shapeLayer.fillColor = UIColor.clearColor().CGColor 

    shapeLayer.strokeColor = UIColor.redColor().CGColor 

    shapeLayer.lineWidth = 3.0 

    cell.progress.layer.addSublayer(shapeLayer) 
+0

Просьба представить изображение того, чего вы хотите достичь. – matt

+0

Что-то вроде этого, разные диапазоны должны иметь разные цвета https://www.google.com/search?q=multi+color+circle+border&safe=strict&espv=2&biw=1164&bih=641&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjrwO-Kk -TMAhWKPCYKHYVLBbAQ_AUIBigB # imgrc = CJTN91lRO2WmVM% 3A – johnson

+0

Прохладный! Я думал, что это может быть то, что вы имели в виду ... – matt

ответ

1

Нет простого способа; вы, конечно, не собираетесь делать это с одним слоем формы. Но вы можете легко построить чертеж (в коде), где вы создаете последовательные дуги разных цветов. Например:

enter image description here

Это было достигнуто за счет повторяющейся последовательности обращений к CGContextSetStrokeColorWithColor, CGContextAddArc и CGContextStrokePath.

+0

Итак, мне нужно было бы создать несколько дуг и добавить их в круг, который я создал выше? – johnson