使用CGContext绘制线条

我想用CGContext绘制一条线,到目前为止我是:

CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor); CGContextSetLineWidth(context, 1.0f); CGContextMoveToPoint(context, 10, 10); CGContextAddLineToPoint(context, 100, 50); CGContextStrokePath(context); 

它总是从左上角到右下角的顶部。 如何调整此线的起点和终点? 如何调整线的长度?

这两行负责起点和终点:

 CGContextMoveToPoint(context, 10, 10); // This sets up the start point CGContextAddLineToPoint(context, 100, 50); // This moves to the end point. 

通过调整这两个x,y点,您可以调整线条。 线的长度取决于起点和终点。

继psoft的答案之后 – 这是一个绘图的基本示例项目 ,包括创建路径和抚摸它。

有关路径的Quartz 2D指南中的更多示例代码将对此进行更详细的说明。

CoreGraphics ==好时光。

已经有一段时间了,因为我做了任何徒手画的事情,这些天我所做的就是在绘画操作之前建立一切。 请记住,从Logo的日子开始,有一个隐含的“光标”,你可以移动它而不需要移动绘图操作,但你必须指定它。 我认为一个好的方法(至少对于静态数字)是创建那些你必须首先绘制的路径,然后反复使用路径来填充,描边,着色。

  CGColorRef fillColor = // yadda CGColorRef strokeColor = // yadda const CGFloat radius = 5.0; // Create the path first - rounded rectangle CGMutablePathRef path = CGPathCreateMutable(); CGPathMoveToPoint(path, NULL, 100.0 - radius, 10.0); CGPathAddLineToPoint(path, NULL, 10.0 + radius, 10.0); CGPathAddArcToPoint(path, NULL, 10.0, 10.0, 10.0, 10.0 + radius, radius); CGPathAddLineToPoint(path, NULL, 10.0, 100.0 - radius); CGPathAddArcToPoint(path, NULL, 10.0, 100.0, 10.0 + radius, 100.0, radius); CGPathAddLineToPoint(path, NULL, 100.0 - radius, 100.0); CGPathAddArcToPoint(path, NULL, 100.0, 100.0, 100.0, 100.0 - radius, radius); CGPathAddLineToPoint(path, NULL, 100.0, 10.0 + radius); CGPathAddArcToPoint(path, NULL, 100.0, 10.0, 100.0 - radius, 10.0, radius); CGPathCloseSubpath(path); // Then use it in your draw commands CGContextSetStrokeColor(context, CGColorGetComponents(strokeColor)); CGContextSetFillColor(context, CGColorGetComponents(fillColor)); CGContextSetLineJoin(context, kCGLineJoinMiter); CGContextSetLineWidth(context, strokeWidth); CGContextAddPath(context, path); CGContextDrawPath(context, kCGPathFillStroke); CGPathRelease(path); 

等等。如果需要,您可以在最后释放路径,或者保留参考以供以后使用。