Не существует встроенного способа преобразования обводки в путь, а затем обводки этого пути. Тем не менее, вы можете приблизиться к этому, нарисовав линию дважды: один раз с 6 пиксельными штрихами (4 пикселя + 1 с каждой стороны), а затем снова с 4 пиксельными штрихами другого цвета
Аналогично:
CGContextRef context = UIGraphicsGetCurrentContext();
CGPoint curPoint = [(NSValue*)[points objectAtIndex:0] CGPointValue];
CGContextMoveToPoint(context, curPoint.x, curPoint.y);
for( int i = 1; i < [points count]; i++ ) {
curPoint = [(NSValue*)[points objectAtIndex:i] CGPointValue];
CGContextAddLineToPoint(context, curPoint.x, curPoint.y);
}
// Set your 1 pixel highlight color here using CGContextSetRGBStrokeColor or equivalent
// CGContextSetRGBStrokeColor(...)
CGContextSetLineWidth(context, 6.0);
CGContextStrokePath(context);
// Set your 4 pixel stroke color here using CGContextSetRGBStrokeColor or equivalent
// CGContextSetRGBStrokeColor(...)
CGContextSetLineWidth(context, 4.0);
CGContextStrokePath(context);
Другой идеей было бы настроить тень с помощью CGContextSetShadowWithColor (context, CGSizeZero, 1.0, yourHighlightColorHere) до рисования обводки, хотя это не будет рисовать цвет выделения с полной непрозрачностью. (Я также не могу вспомнить, если теневые свойства имеют штрихи - я использовал их только с заливками)