项目中一个界面包含了扇形图,是下面这个样子。于是这里先写了一个简单的实现(是固定死的比例,以后再加比例就OK了)。
原理
利用CAShapeLayer
和UIBezierPath
绘制。
主要代码
CAShapeLayer *circle = [CAShapeLayer layer];
circle.lineWidth = lineWidth1;
circle.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(kScreenWidth/2, kScreenHeight/2) radius:raidus1 startAngle:0 endAngle:-2*M_PI clockwise:NO].CGPath;
circle.strokeColor = [UIColor whiteColor].CGColor;
circle.fillColor = [UIColor lightGrayColor].CGColor;
[self.view.layer addSublayer:circle];
有一点需要注意的是lineWidth
这个属性设置了之后会有一半覆盖掉半径,也就是说半径是100的话,设置lineWidth
为50的话,看到的效果是里面的半径是100-50/2=75.(我当时找了好久的原因才发现这个问题)
结束
到这里就结束了,其实发现这个还是很简单的。这里有我完整的代码:点我查看