环形进度条的实现

本文介绍如何使用DACircularProgress库创建圆形进度条,并演示了如何通过代码调整其样式及实现动态效果。文中提供了详细的初始化步骤及动画控制方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述

这里写图片描述

//添加代码

https://github.com/danielamitay/DACircularProgress
这里写图片描述

在所需要展示进度条的类里引入类

#import "DACircularProgressView.h"
#import "DALabeledCircularProgressView.h"

方法的调用与实现

//.h
// Labeled progress views
@property (strong, nonatomic) DALabeledCircularProgressView *labeledProgressView;
@property (strong, nonatomic) UIStepper *stepper;
@property (strong, nonatomic) NSTimer *timer;
//.m
@synthesize stepper = _stepper;
@synthesize timer = _timer;

viewDidLoad中实现
    //进度条的初始化
    self.labeledProgressView = [[DALabeledCircularProgressView alloc] initWithFrame:CGRectMake(100.0f, 100.0f, 60.0f, 60.0f)];
    self.labeledProgressView.roundedCorners = NO;
    [self.view addSubview:self.labeledProgressView];

    //修改展示形式
    self.labeledProgressView.trackTintColor = [UIColor grayColor];
    self.labeledProgressView.progressTintColor = [UIColor whiteColor];
    self.labeledProgressView.thicknessRatio = 1.0f;
    self.labeledProgressView.clockwiseProgress = NO;
    [self startAnimation];

//自定义一个时间控制器

- (void)startAnimation
{
    self.timer = [NSTimer scheduledTimerWithTimeInterval:0.03
                                                  target:self
                                                selector:@selector(progressChange)
                                                userInfo:nil
                                                 repeats:YES];
}

//进度label的显示

- (void)progressChange
{
    // Labeled progress views
    CGFloat progress = ![self.timer isValid] ? self.stepper.value / 10.0f : self.labeledProgressView.progress + 0.01f;

    [self.labeledProgressView setProgress:progress animated:YES];

    if (self.labeledProgressView.progress >= 1.0f && [self.timer isValid]) {
        [self.labeledProgressView setProgress:0.f animated:YES];
    }
    CGFloat number= self.labeledProgressView.progress*100;
    self.labeledProgressView.progressLabel.text = [NSString stringWithFormat:@"%.f%%", number];
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值