解决CoreGraphics画圆缺角

昨天开发中遇到一个问题,Core Graphics画圆居然不圆?而且还是各种函数画都会有四个缺角,十分蛋疼,临近下班才发现了问题所在.今天分享出来,希望能帮助到大家少走点坑

原来的代码

- (void)drawRect:(CGRect)rect { // Drawing code [super drawRect:rect]; CGContextRef ref = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(ref, 2); [[UIColor orangeColor] set]; float xy = self.frame.size.width/2; CGContextAddArc(ref, xy,xy,xy, 0, M_PI*1.8, 0); CGContextStrokePath(ref); }
看起来没有什么问题,但是一运行就懵逼了

解决CoreGraphics画圆缺角_第1张图片
运行效果图

这四个缺角给是什么鬼...
于是开始各种找资料,同时尝其他画法,可不管怎么样,四个缺角依然存在.

最后切换了下背景色,发现有缺角是绘画超出了区域...
很坑啊有木有!

解决CoreGraphics画圆缺角_第2张图片
切换背景色后

由此得出结论:圆的直径要小于父试图的宽高

修改代码
CGContextAddArc(ref, xy,xy,xy*0.99, 0, M_PI*1.8, 0);

大功告成


解决CoreGraphics画圆缺角_第3张图片
修正后的圆

希望大家能少掉些坑...

你可能感兴趣的:(解决CoreGraphics画圆缺角)