首页 > 手机专区 > 苹果手机 >

iOS如何实现环形进度条加载效果

来源:互联网 2023-02-21 17:15:15 123

使用UIBezierPath曲线实现环形进度条效果。jYc办公区 - 实用经验教程分享!

工具/原料

  • Xcode

方法/步骤

  • 1

    自定义CircleView继承于UIView,.h声明jYc办公区 - 实用经验教程分享!

    @property (nonatomic, assign) CGFloat progress;jYc办公区 - 实用经验教程分享!

    外部调用来控制显示圆形进度与文字显示。jYc办公区 - 实用经验教程分享!

    iOS如何实现环形进度条加载效果jYc办公区 - 实用经验教程分享!

  • 2

    .m声明jYc办公区 - 实用经验教程分享!

    @property (nonatomic, strong) UILabel *cLabel;jYc办公区 - 实用经验教程分享!

    用来显示进度条进度的显示。jYc办公区 - 实用经验教程分享!

    iOS如何实现环形进度条加载效果jYc办公区 - 实用经验教程分享!

  • 3

    重写- (instancetype)initWithFrame:(CGRect)frame方法进行界面初始化,设置文字的显示位置与文字颜色和大小,如下:jYc办公区 - 实用经验教程分享!

    - (instancetype)initWithFrame:(CGRect)frame {jYc办公区 - 实用经验教程分享!

    if (self = [super initWithFrame:frame]) {jYc办公区 - 实用经验教程分享!

    self.backgroundColor = [UIColor clearColor];jYc办公区 - 实用经验教程分享!

    UILabel *cLabel = [[UILabel alloc] initWithFrame:self.bounds];jYc办公区 - 实用经验教程分享!

    cLabel.font = [UIFont boldSystemFontOfSize:26.0f];jYc办公区 - 实用经验教程分享!

    cLabel.textColor = [UIColor colorWithRed:0/255.0 green:191/255.0 blue:255/255.0 alpha:1];jYc办公区 - 实用经验教程分享!

    cLabel.textAlignment = NSTextAlignmentCenter;jYc办公区 - 实用经验教程分享!

    [self addSubview:cLabel];jYc办公区 - 实用经验教程分享!

    self.cLabel = cLabel;jYc办公区 - 实用经验教程分享!

    }jYc办公区 - 实用经验教程分享!

    return self;jYc办公区 - 实用经验教程分享!

    }jYc办公区 - 实用经验教程分享!

    iOS如何实现环形进度条加载效果jYc办公区 - 实用经验教程分享!

  • 3相关内容未经授权抓取自百度经验
  • 4

    绘制方法需要重写- (void)drawRect:(CGRect)rect,使用UIBezierPath绘制圆形动画路径,调用stroke进行绘制,如下:jYc办公区 - 实用经验教程分享!

    - (void)drawRect:(CGRect)rectjYc办公区 - 实用经验教程分享!

    {jYc办公区 - 实用经验教程分享!

    UIBezierPath *path = [[UIBezierPath alloc] init];jYc办公区 - 实用经验教程分享!

    path.lineWidth = 10.0;jYc办公区 - 实用经验教程分享!

    [[UIColor colorWithRed:0/255.0 green:191/255.0 blue:255/255.0 alpha:1] set];jYc办公区 - 实用经验教程分享!

    path.lineCapStyle = kCGLineCapRound;jYc办公区 - 实用经验教程分享!

    path.lineJoinStyle = kCGLineJoinRound;jYc办公区 - 实用经验教程分享!

    CGFloat radius = (MIN(rect.size.width, rect.size.height) - 10.0) * 0.5;jYc办公区 - 实用经验教程分享!

    [path addArcWithCenter:(CGPoint){rect.size.width * 0.5, rect.size.height * 0.5} radius:radius startAngle:M_PI * 1.5 endAngle:M_PI * 1.5 M_PI * 2 * _progress clockwise:YES];jYc办公区 - 实用经验教程分享!

    [path stroke];jYc办公区 - 实用经验教程分享!

    }jYc办公区 - 实用经验教程分享!

    iOS如何实现环形进度条加载效果jYc办公区 - 实用经验教程分享!

  • 5

    实例化CircleView并添加到指定视图上,同时定义一个定时器在定时器方法里面赋值progress进行进度设置,如下:jYc办公区 - 实用经验教程分享!

    CircleView *circleView = [[CircleView alloc] initWithFrame:CGRectMake(50, 100, 150, 150)];jYc办公区 - 实用经验教程分享!

    [self.view addSubview:circleView];jYc办公区 - 实用经验教程分享!

    iOS如何实现环形进度条加载效果jYc办公区 - 实用经验教程分享!

  • 6

    最终圆形进度条实现效果如下:jYc办公区 - 实用经验教程分享!

    iOS如何实现环形进度条加载效果jYc办公区 - 实用经验教程分享!

    iOS如何实现环形进度条加载效果jYc办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!jYc办公区 - 实用经验教程分享!


    标签: iosXCODE苹果实现进度

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码