二 iOS之 模仿下载进度—画圆圈

效果图

这里写图片描述

先在storyboard上拖入一个view,一个label,一个滑块

新添加一个UIView - ProgressView, 在.h文件中写入属性

//滑块的进度
@property(nonatomic,assign)CGFloat progress;

在.m文件中
//set方法,重新赋值
-(void)setProgress:(CGFloat)progress
{
    _progress = progress;


    //系统会先创建与view相关联的上下文,然后再调用drawRect
    [self setNeedsDisplay];

}

//注意:drawRect不能手动调用,因为图形上下文我们自己创建不了,只能由系统帮我们创建,并且传递给我们
- (void)drawRect:(CGRect)rect {

    //创建贝瑟尔路径

    CGFloat radius = rect.size.width  * 0.5;
    CGPoint center = CGPointMake(radius, radius);

    CGFloat endA = -M_PI_2 + self.progress * M_PI * 2;


    UIBezierPath * path = [UIBezierPath bezierPathWithArcCenter:center radius:radius-5 startAngle:-M_PI_2 endAngle:endA clockwise:YES];

    [path stroke];



}
ViewController.m中
#import "ViewController.h"
#import "ProgressView.h"

@interface ViewController ()
//拖进去的label
@property (weak, nonatomic) IBOutlet UILabel *progressLabel;
@property (weak, nonatomic) IBOutlet ProgressView *proView;


@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];


}

//滑块变动的方法
- (IBAction)progressChange:(UISlider *)sender {


    self.progressLabel.text = [NSString stringWithFormat:@"%.2f%%",sender.value * 100];

    self.proView.progress = sender.value;


}

@end

写不好看demo :iOS-ProgressCircle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值