Objective c CGPath笔划线宽与CASHAPELYER不一致

Objective c CGPath笔划线宽与CASHAPELYER不一致,objective-c,vector,svg,calayer,Objective C,Vector,Svg,Calayer,左侧图像的线宽为0.5。右侧图像的线宽为1.0。我希望左边的图像线和右边的图像一样,都是宽的 我正在将线条添加到CGMutablePath,但当我将其添加到shapelayer时,正如您在图像中看到的那样,线条宽度不一致 这是我的密码 shapeLayer.strokeColor = [UIColor redColor].CGColor; shapeLayer.lineWidth = 0.5; shapeLayer.fillColor = nil; shapeLayer.miterLimit

左侧图像的线宽为0.5。右侧图像的线宽为1.0。我希望左边的图像线和右边的图像一样,都是宽的

我正在将线条添加到CGMutablePath,但当我将其添加到shapelayer时,正如您在图像中看到的那样,线条宽度不一致

这是我的密码

shapeLayer.strokeColor = [UIColor redColor].CGColor;
shapeLayer.lineWidth = 0.5;
shapeLayer.fillColor = nil; 
shapeLayer.miterLimit = 0;
shapeLayer.path = path;

非常感谢您的帮助

我自己也遇到了同样的问题。后来我发现问题出在这行代码上:

shapeLayer.lineCap = kCALineCapSquare;
这导致线条的宽度在各个方向(左、右、上、下)都增加了一倍

如果将其设置为
lineWidth=2
,则其左右两侧的宽度将为+1+1到它的顶部和底部


解决此问题的方法是保留
lineCap
be。使用默认值:
kCALineCapButt

奇怪的是,它看起来与线宽1一致。解决这个问题有什么好运气吗?我遇到了同样的问题。