美文网首页iOS 开发 iOS Developer
解决CoreGraphics画圆缺角

解决CoreGraphics画圆缺角

作者: 魏天晨 | 来源:发表于2016-05-27 10:24 被阅读350次

    昨天开发中遇到一个问题,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);

    大功告成


    修正后的圆

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

    相关文章

      网友评论

        本文标题:解决CoreGraphics画圆缺角

        本文链接:https://www.haomeiwen.com/subject/rdnxdttx.html