//alloc CircularProgressView instance
self.circularProgressView = [[CircularProgressView alloc] initWithFrame:CGRectMake(41, 57, 238, 238)
backColor:backColor
progressColor:progressColor
lineWidth:30
audioPath:audioPath];
//set CircularProgressView delegate
self.circularProgressView.delegate = self;
//add CircularProgressView
[self.view addSubview:self.circularProgressView];
圆形进度条里有播放、暂停、恢复的方法,需要的时候可以直接调用。
其实,圆形进度条的核心代码就在该类中drawRect方法中,主要用UIBezierPath绘制圆弧,根据音频播放进度以0.1秒的间隔更新进度条。
UIBezierPath *backCircle = [UIBezierPat bezierPathWithArcCenter:CGPointMake(self.bounds.size.width / 2,self.bounds.size.height / 2)
radius:self.bounds.size.width / 2 - self.lineWidth / 2
startAngle:(CGFloat) - M_PI_2
endAngle:(CGFloat)(1.5 * M_PI)
clockwise:YES];