IOS开发-利用绘图表示进度
2016-05-20 12:07
507 查看
(1)创建自定义view。
(2)导入QuartzCore框架
(3)在h文件,定义一个属性,用于接收进度值,最大值是1,最小值是0:
(4)m文件的代码如下:
传入progress的值就能刷新进度了:
(2)导入QuartzCore框架
(3)在h文件,定义一个属性,用于接收进度值,最大值是1,最小值是0:
#import <UIKit/UIKit.h> @interface ZCView : UIView @property(nonatomic,assign)CGFloat progress; @end
(4)m文件的代码如下:
#import "ZCView.h" #import <QuartzCore/QuartzCore.h> @interface ZCView () @property(nonatomic,weak)UILabel *progressLabel; @end @implementation ZCView - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if(self) { CGFloat proX = 0; CGFloat proW = frame.size.width; CGFloat proH = 20; CGFloat proY = (frame.size.height-proH)/2; UILabel *progressLabel = [[UILabel alloc]initWithFrame:CGRectMake(proX, proY, proW, proH)]; [progressLabel setTextAlignment:NSTextAlignmentCenter]; self.progressLabel = progressLabel; [self addSubview:progressLabel]; } return self; } - (void)drawRect:(CGRect)rect { //线宽 CGFloat lineWidth = 5; //半径 CGFloat radius = (rect.size.width-lineWidth*4)/2; //圆心 CGPoint center = CGPointMake(rect.size.width/2, rect.size.width/2); //结束弧度 CGFloat endAngle = -M_PI_2+(_progress*M_PI*2); //路径 UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:-M_PI_2 endAngle:endAngle clockwise:YES]; [path setLineWidth:lineWidth]; [path stroke]; } - (void)setProgress:(CGFloat)progress { _progress = progress; [self.progressLabel setText:[NSString stringWithFormat:@"%.2f%%",progress*100]]; [self setNeedsDisplay]; } @end
传入progress的值就能刷新进度了:
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- jquery彩色投票进度条简单实例演示
- jquery模拟进度条实现方法
- VB实现鼠标绘图实例代码
- Windows窗体的.Net框架绘图技术实现方法
- PHP设置进度条的方法
- jquery实现模拟百分比进度条渐变效果代码
- js ajax加载时的进度条代码
- javascript实现简单的进度条
- js插件YprogressBar实现漂亮的进度条效果
- ajax 异步上传带进度条视频并提取缩略图
- 基于jquery步骤进度条源码分享
- jquery插件NProgress.js制作网页加载进度条