作品链接://www.greatytc.com/users/1e0f5e6f73f6/top_articles
- 1.自定义一个UIView的子类
// 提供一个成员属性,接收下载进度值
@property (nonatomic, assign) CGFloat progress;
- 2.重写成员属性的progress的setter
// 改变成员属性progress的属性的值,就会调用它的setter
-(void)setProgress:(CGFloat)progress{
_progress = progress;
// 当下载进度改变时,就会调用重绘方法
[self setNeedsDisplay];
}
- 3.重写
-(void)drawRect:(CGRect)rect
{
// 设置圆弧的半径
CGFloat radius = rect.size.width * 0.5;
// 设置圆弧的圆心
CGPoint center = CGPointMake(radius, radius);
//设置圆弧的开始的角度
CGFloat startAngle = - M_PI_2;
// 设置圆弧的终止角度
CGFloat endAngle = - M_PI_2 + 2 * M_PI * self.progress;
//使用 UIBezierPath类绘制圆弧
UIBezierPath *path =[UIBezierPathbezierPathWithArcCenter:centerradius:radius - 2 startAngle:startAngle endAngle:endAngleclockwise:YES];
//将绘制的圆弧渲染到图层(即显示出来)
[path stroke];
}