UIBezierPath和线条粗细

时间:2014-04-11 14:02:53

标签: ios uibezierpath

假设我有这个片段画一条线。

[path moveToPoint:CGPointMake(x + cellWidth * i + kLineThickness, y)];
[path addLineToPoint:CGPointMake(x + cellWidth *i + kLineThickness, y + cellWidth * cells + kLineThickness)];

该行的像素从哪里开始?它是否在两侧均匀划分线条厚度?

2 个答案:

答案 0 :(得分:3)

您提供的代码将绘制一条垂直线,因为两个坐标具有相同的x坐标。它根本不会影响厚度。该行的像素从(x + cellWidth * i + kLineThickness,y)开始。

您可以在使用函数绘制线条之前指定线条的宽度来修改线条的宽度:

CGContextRef context = UIGraphicsGetCurrentContext();
CGontextSetLineWidth(context, lineWidth);
[path moveToPoint:CGPointMake(x1,y1)];
[path addLineToPoint:CGPointMake(x2,y2)];

上面的代码将使用宽度为lineWidth从(x1,y1)到(x2,y2)形成一条线。

此外,您需要绘制当前上下文。请仔细阅读Apple文档。 https://developer.apple.com/library/ios/documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_paths/dq_paths.html#//apple_ref/doc/uid/TP30001066-CH211-SW1

答案 1 :(得分:2)

是的,来自Quartz 2D Programming Guide

  

线宽是线的总宽度,以单位表示   用户空间。这条线跨越了路径,占总数的一半   两边的宽度。