У меня есть UIBezierPath, который является дугой. Я хочу только обратить штрих в графический контекст (то есть, ход дуги, не включая линию, соединяющую конечные и начальные точки дуги)CoreGraphics - Нарисовать ход дуги
Как только я это сделаю, я могу добавить линейный градиент к контексту, эффективно рисующий градиент на такте дуги.
Вот мой DrawRect:
let context = UIGraphicsGetCurrentContext()
CGContextSaveGState(context)
CGContextAddPath(context, _progressPathForProgress(_progressToDrawForProgress(progress)).CGPath)
CGContextStrokePath(context)
CGContextClip(context)
let colours = [self.startColour.CGColor, self.endColour.CGColor]
let colourSpace = CGColorSpaceCreateDeviceRGB()
let colourLocations: [CGFloat] = [0.0, 1.0]
let gradient = CGGradientCreateWithColors(colourSpace, colours, colourLocations)
var startPoint = CGPoint.zeroPoint
var endPoint = CGPoint(x: 0, y: bounds.height)
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, CGGradientDrawingOptions.allZeros)
CGContextRestoreGState(context)
Но все это делает добавить градиент к полноте моего UIView. Где я ошибся?
Спасибо за ответ, можете ли вы подробнее рассказать о своих комментариях? Какие пункты мне нужно добавить? –
Я обновил свой ответ, чтобы объяснить это. – zisoft
Спасибо за обновление –