解决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); }
看起来没有什么问题,但是一运行就懵逼了

运行效果图

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

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

切换背景色后

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

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

大功告成


修正后的圆

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容