IOS实现简单的进度条功能

2016-02-19 09:04 29 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享IOS实现简单的进度条功能的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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];}

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

来源:https://www.tulaoshi.com/n/20160219/1589407.html

延伸阅读
带文字的进度条 作者:重庆建设集团一所 唐星彬 下载本文示例源代码 在下载安装的过程中,我们经常会看到带有文字的进度条,它能给人一种直观的概念。在VC中也有进度条的控件,但它不能显示文字。今有一CProgressCtrl类的派生类CTextProgressCtrl就有完成这样的工作。两种控件运行情况的对比如下: ...
新建一个工程 增加一个picture box和command button 加入下面的代码:Dim tenth As Long'条件编译#If Win32 ThenPrivate Declare Function BitBlt Lib "gdi32" _(ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, _ByVal nWidth As Long, ByVal nHeight As Long, _ByVal hSrcDC As Long, ByVal xSrc As...
标签: flash教程
1。首先在场景上画上一个长条状的进度条 2。选取这个进度条之后按 F8 把它转换成Movieclip影片,记得“注册点”必须在左边 3。转换成影片之后设定实例名 loader ,再来编辑这个影片 4。制作100个帧的的进度,然后增加一个图层并增加一个停止播放的指令 5。回到场景,在第一帧输入以下代码 6。在第二帧开始加入你们的...
《无尽的进度条Progress Quest》部分法术效果攻略 提示1:《无尽的进度条》 为半即时回合制游戏,即那种战斗开始后敌我都有行动条,走到头才能行动的回合制。 瞬移:有一定几率让你无视速度,立刻行动,几率随法术等级上升。 兔子的正义铁拳:召...
标签: Web开发
今天有人问我,163邮箱那样的Javascript加载进度条是如何实现的。 我不知道,不过实现一个不难,因为script /有onload和onreadystatechange。还有就是,我们有Atlas。 Atlas中有个类:Sys.ScriptLoader,它的作用就是在页面中依次地加载多个Script文件。在实现之前,先来分析一下这个类的代码。     1Sys.Sc...

经验教程

716

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部