我正在使用下面的代码来绘制多边形。我得到的图像如下:
我用于绘制正方形的代码如下:
CGContextRef currentContext = UIGraphicsGetCurrentContext();
[topLeftBoxBorderColor set];
CGContextSetLineWidth(currentContext, 1.0f);
CGContextSetLineJoin(currentContext,kCGLineJoinMiter);
CGContextMoveToPoint(currentContext, originXOfSubviews, originYOfSubviews);
CGContextAddLineToPoint(currentContext, originXOfSubviews+widthOfBox, originYOfSubviews);
CGContextAddLineToPoint(currentContext, originXOfSubviews+widthOfBox, originYOfSubviews+heightOfBox);
CGContextAddLineToPoint(currentContext, originXOfSubviews, originYOfSubviews+heightOfBox);
CGContextAddLineToPoint(currentContext, originXOfSubviews, originYOfSubviews);
CGContextStrokePath(currentContext);
在所有角落的两条线的交界处都有一个白点。有什么办法可以避免这个点?
更新 1:
我知道以下解决方案:根据线宽,可以更改线的起点并达到我的期望。但是还有其他解决方案吗?
更新 2:
我正在使用下面的代码来绘制多边形
当我将 lineWidth 设置为 1 或小于该值时,会发生同样的问题。如果我将其设置为 2 或更高,则不会出现问题。
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, topLeftBoxBorderColor.CGColor);
CGRect rectangle = CGRectMake(originXOfSubviews,originYOfSubviews,widthOfBox,heightOfBox);
CGContextAddRect(context, rectangle);
CGContextStrokePath(context);