昨天开发中遇到一个问题,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);
大功告成
修正后的圆
希望大家能少掉些坑...
网友评论