2011-01-16 2 views
2

Возможно ли рисовать линию со специальной формой, например, точками (точка Китая)? я нарисовать линию под кодомНичья линия со специальной формой, как пунктир (точка Китая)

UIGraphicsBeginImageContext(self.view.frame.size); 
[drawImage.image drawInRect:CGRectMake(0, 0, 320, 480)]; 
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0); 
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.867, 0.867, 0.867, 1.0); 
CGContextBeginPath(UIGraphicsGetCurrentContext()); 
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), startPoint.x, startPoint.y); 
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), endPoint.x, endPoint.y); 
CGContextStrokePath(UIGraphicsGetCurrentContext()); 
CGContextFlush(UIGraphicsGetCurrentContext()); 
drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

ответ

4

Может быть CGContextSetLineDash является то, что вы хотите. Он устанавливает шаблон для пунктирных линий в графическом контексте.

void CGContextSetLineDash (
    CGContextRef c, 
    CGFloat phase, 
    const CGFloat lengths[], 
    size_t count 
); 

Этот пример рисует линию с кругами (диаметр: 20 точек, расстояние: 40 баллов):

CGContextSetLineWidth(context, 20.0); 
CGFloat dash[] = {0.0, 40.0}; 
CGContextSetLineCap(context, kCGLineCapRound); 
CGContextSetLineDash(context, 0.0, dash, 2); 
CGContextMoveToPoint(context, 10.0, 30.0); 
CGContextAddLineToPoint(context, 310.0, 30.0); 
CGContextStrokePath(context); 
+0

Спасибо you.Is можно нарисовать линию с другой формы, как круг –

+0

Смотрите мой отредактированный ответ – Felix

Смежные вопросы