带边框的iOS UIImage具有较厚的角半径

带边框的iOS UIImage具有较厚的角半径,ios,objective-c,uiimage,core-graphics,paintcode,Ios,Objective C,Uiimage,Core Graphics,Paintcode,我正在尝试使用CoreGraphics(通过PaintCode)在代码中构建一个UIImage,它有一个边框和一个圆角半径。我发现图像的拐角处有明显较厚的边框。这看起来可能是一个iOS错误,或者是我完全不知道的东西。请告知 代码: 图片: 以下是线宽为1和宽度为60的情况,看起来仍然有点厚: 对于那些在家跟随的人: 感谢有帮助的@,我需要为UIBezierPath插入边界,这样边界就不会超过我正在绘制的图像的框架 将代码修改为线宽为1,如下所示 CGRect boundedRectForRad

我正在尝试使用CoreGraphics(通过PaintCode)在代码中构建一个UIImage,它有一个边框和一个圆角半径。我发现图像的拐角处有明显较厚的边框。这看起来可能是一个iOS错误,或者是我完全不知道的东西。请告知

代码:

图片:

以下是线宽为1和宽度为60的情况,看起来仍然有点厚:


对于那些在家跟随的人:

感谢有帮助的@,我需要为UIBezierPath插入边界,这样边界就不会超过我正在绘制的图像的框架

将代码修改为线宽为1,如下所示

CGRect boundedRectForRadius = CGRectMake(1, 1, 58, 98);
UIBezierPath *rectanglePath = [UIBezierPath bezierPathWithRoundedRect:boundedRectForRadius cornerRadius:cornerRadius];
如果不这样做,它将图像裁剪为:


问题也可能出现在实际屏幕像素坐标的偏移上。 有关更多详细信息,请查看此讨论:

我猜这是使用分数线宽的产物。它会做一些插值来满足你的要求。尝试使用1.0或2.0作为线宽,我敢打赌你会得到相同的结果。(就此而言,在视网膜设备上,1.5(点)应该分辨率为3像素。)这主意不错,但它的线宽为1.0,宽度为60,看起来仍然很时髦。(问题附图)。当然,这确实有助于解决问题,但并不能完全解决问题。我发现使用图层属性绘制的圆角矩形比使用核心图形绘制的圆角矩形要好。不知道为什么。尝试在视图的图层上设置线宽、边框颜色和边框宽度,看看这是否能提供更好的结果。答案肯定正确,剪裁是导致问题的原因
CGRect boundedRectForRadius = CGRectMake(1, 1, 58, 98);
UIBezierPath *rectanglePath = [UIBezierPath bezierPathWithRoundedRect:boundedRectForRadius cornerRadius:cornerRadius];