这两天我正在研究如何用objective-c中的代码制作圆形图像。我找到了几种方法来做到这一点,但无论采用哪种方式,创建的图像都不是精确的圆形,它是切割的。请参阅以下代码和图片:
CGRect rect = CGRectMake(0.0f, 0.0f, radius*2.0f, radius*2.0f);
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillEllipseInRect(context, rect);
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
如果仔细观察图像,您会发现边缘已被切割。
最后我发现我是否更改了以下代码:
CGRect rect = CGRectMake(0.0f, 0.0f, radius*2.0f+4, radius*2.0f+4);
CGRect rectmin = CGRectMake(2.0f, 2.0f, radius*2, radius*2);
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillEllipseInRect(context, rectmin);
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
结果好多了,但我不认为这是一个很好的解决方案。有没有人确切知道我的第一个代码片段的问题是什么?提前谢谢。
P.S。所有截图都是从模拟器中捕获的。