IOS实现简单的进度条功能

 更新时间:2016年01月10日 10:20:24   作者:世俗孤岛  
这篇文章主要介绍了IOS实现简单的进度条功能的相关资料,需要的朋友可以参考下

本文实例绘制了炫酷的下载进度条,分享给大家供大家参考,具体内容如下

一、实现思路
1、要实现绘图,通常需要自定义一个UIView的子类,重写父类的- (void)drawRect:(CGRect)rect方法,在该方法中实现绘图操作
2、若想显示下载进度,只需要实例化自定义子类的对象(若是storyboard中控件,只需修改控件的class属性为自定义子类的类名即可)

3、效果图所示的效果其实是绘制一个圆弧,动态的改变终点的位置,最终达到一个封闭的圆
4、中间的文字是一个UILabel控件,根据进度动态改变文字的现实
二、实现步骤
1、自定义一个UIView的子类

//提供一个成员属性,接收下载进度值
@property (nonatomic, assign) CGFloat progress;

2、重写成员属性progress的setter

//每次改变成员属性progress的值,就会调用它的setter
- (void)setProgress:(CGFloat)progress
{
  _progress = progress;
  //当下载进度改变时,手动调用重绘方法
  [self setNeedsDisplay];
}

3、重写- (void)drawRect:(CGRect)rect(核心)

- (void)drawRect:(CGRect)rect
{
  //设置圆弧的半径
  CGFloat radius = rect.size.width * 0.5;
  //设置圆弧的圆心
  CGPoint center = CGPointMake(radius, radius);
  //设置圆弧的开始的角度(弧度制)
  CGFloat startAngle = - M_PI_2;
  //设置圆弧的终止角度
  CGFloat endAngle = - M_PI_2 + 2 * M_PI * self.progress;
  //使用UIBezierPath类绘制圆弧
  UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius - 5 startAngle:startAngle endAngle:endAngle clockwise:YES];
  //将绘制的圆弧渲染到图层上(即显示出来)
  [path stroke];
}

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

  • iOS App项目中引入SQLite数据库的教程

    iOS App项目中引入SQLite数据库的教程

    SQLite是一个极轻的嵌入式数据库,在应用程序中捆绑使用可以更方便地帮助操控关系型数据,这里我们就来看一下iOS App项目中引入SQLite数据库的教程
    2016-06-06
  • iOS中的UITextView文字输入光标使用技巧小结

    iOS中的UITextView文字输入光标使用技巧小结

    UITextView在用户体验方面有着十分明显的作用,包括键盘的呼出及文字的选择等,接下来就来整理给出一份iOS中的UITextView文字输入光标使用技巧小结,需要的朋友可以参考下
    2016-05-05
  • IOS文件的简单读写实例详解

    IOS文件的简单读写实例详解

    这篇文章主要介绍了IOS文件的简单读写实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • iOS安全防护系列之字符串及系统函数隐藏详解

    iOS安全防护系列之字符串及系统函数隐藏详解

    这篇文章主要给大家介绍了关于iOS安全防护系列之字符串及系统函数隐藏的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • iOS中将个别页面强制横屏其他页面竖屏

    iOS中将个别页面强制横屏其他页面竖屏

    这篇文章主要介绍了iOS中将个别页面强制横屏其他页面竖屏的实现思路,需要的朋友参考下吧
    2016-12-12
  • iOS开发中UIDatePicker控件的使用方法简介

    iOS开发中UIDatePicker控件的使用方法简介

    这篇文章主要介绍了iOS开发中UIDatePicker控件的使用方法简介,用来处理各种时间日期的选择,需要的朋友可以参考下
    2015-11-11
  • 深入浅析IOS中UIControl

    深入浅析IOS中UIControl

    UIControl,相信大家对其并不陌生吧,比如平常最常用的UIButton就是继承自UIControl的。下面通过本篇文章给大家介绍ios中UIControl,感兴趣的朋友一起学习吧
    2015-10-10
  • iOS 11 UINavigationItem 去除左右间隙的方法

    iOS 11 UINavigationItem 去除左右间隙的方法

    本篇文章主要介绍了iOS 11 UINavigationItem 去除左右间隙的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • IOS开发之适配iOS10及Xcode8的注意点

    IOS开发之适配iOS10及Xcode8的注意点

    这篇文章主要介绍了IOS开发之适配iOS10及Xcode8的注意点,本文给大家介绍了可能出现的问题及相应的解决方法,非常不错具有参考借鉴价值,感兴趣的朋友一起看看
    2016-10-10
  • iOS中Block的回调使用和解析详解

    iOS中Block的回调使用和解析详解

    刚刚进入iOS开发行业,发现开发中要用到大量的block回调,由此可见它的重要性。本文主要讲的是 Block 回调的使用,以及 Block 是如何实现这种神奇的回调两部分来讲的,下面来一起看看吧。
    2016-09-09

最新评论