iOS Quartz2D下载进度条代码分析

本文介绍如何使用Quartz2D在iOS应用中实现一个下载进度条。重点讲解了通过不断重新绘制圆形来模拟进度更新的过程,并解释了drawRect方法的工作原理。
BaseQuartz2D

#####1.下载进度条的模拟

  • 是对画图的练习,还有其它的补充点

#####2.下载进度条注意点

  • 第一个:是如何才能根据进度条来获取最终角度,即需要不停的重新画圆
  • 第二个:是drawRect只在图形加载完成时调用一次,即viewDidLoad之后

#####3.具体代码分析


- (IBAction)progressChange:(UISlider *)sender {
    //NSLog(@"%f",sender.value);
    self.progressView.endValue=sender.value;
    self.progressLable.text=[NSString stringWithFormat:@"%.2f%%",sender.value*100];
}



-(void) setEndValue:(CGFloat)endValue{
    _endValue=endValue;
    NSLog(@"%f",_endValue);
    //重绘,系统会先创建与view相关联的上下文,然后再调用drawRect
    [self setNeedsDisplay];
}


 //注意:drawRect不能手动调用,因为图形上下文我们自己创建不了,只能由系统帮我们创建,并且传递给我们
- (void)drawRect:(CGRect)rect {
    //NSLog(@"sss");
    UIBezierPath *path=[UIBezierPath bezierPathWithArcCenter:CGPointMake(rect.size.width*0.5, rect.size.height*0.5) radius:rect.size.height*0.5-2 startAngle:-M_PI_2 endAngle:-M_PI_2+ M_PI*2*self.endValue clockwise:YES];
    [path stroke];
}

#####4.源代码地址

转载于:https://my.oschina.net/HYLApple/blog/699565

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值