- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
iOS开发环形渐变进度条的过程
前言
进度条相信我们大家都不陌生,往往我们很多时候需要使用到圆形进度条。这篇文章给大家分享了利用iOS如何快速实现环形进度条,下面来一起看看。
一:先制作一个不带颜色渐变的进度条
自定义一个cycleView,在.m中实现drawRect方法
-(void)drawRect:(CGRect)rect{
CGContextRefctx=UIGraphicsGetCurrentContext();//获取上下文
CGPointcenter=CGPointMake(100,100);//设置圆心位置
CGFloatradius=90;//设置半径
CGFloatstartA=-M_PI_2;//圆起点位置
CGFloatendA=-M_PI_2+M_PI*2*_progress;//圆终点位置
UIBezierPath*path=[UIBezierPathbezierPathWithArcCenter:centerradius:radiusstartAngle:startAendAngle:endAclockwise:YES];
CGContextSetLineWidth(ctx,10);//设置线条宽度
[[UIColorblueColor]setStroke];//设置描边颜色
CGContextAddPath(ctx,path.CGPath);//把路径添加到上下文
CGContextStrokePath(ctx);//渲染
}
因为drawRect方法只是在视图刚刚出现的时候执行一次,所以我们需要使用
[selfsetNeedsDisplay];
这个方法来进行重新绘制,
在控制器里面加一个slider,滑动slider来控制进度变化
-(void)drawProgress:(CGFloat)progress
_progress=progress;
[selfsetNeedsDisplay];
}
看一下效果
如果进度条不需要加渐变色,那么这儿几行代码就完成了。
下面来实现一下带有渐变色的进度条,原理很简单,刚刚画的是一条默认是黑色的线条,我们把黑色替换成一条渐变色的线条就可以了。
环形渐变色线条的制作:
第一步
使用CAShapeLayer绘制出渐变层,应为它只能指定两个点之间进行渐变,所以这里需要两个CAShapeLayer,左边一个和右边一个,看一下效果图
代码实现
//生成渐变色
CALayer*gradientLayer=[CALayerlayer];
//左侧渐变色
CAGradientLayer*leftLayer=[CAGradientLayerlayer];
leftLayer.frame=CGRectMake(0,0,self.bounds.size.width/2,self.bounds.size.height);//分段设置渐变色
leftLayer.locations=@[@0.3,@0.9,@1];
leftLayer.colors=@[(id)[UIColoryellowColor].CGColor,(id)[UIColorgreenColor].CGColor];
[gradientLayeraddSublayer:leftLayer];
//右侧渐变色
CAGradientLayer*rightLayer=[CAGradientLayerlayer];
rightLayer.frame=CGRectMake(self.bounds.size.width/2,0,self.bounds.size.width/2,self.bounds.size.height);
rightLayer.locations=@[@0.3,@0.9,@1];
rightLayer.colors=@[(id)[UIColoryellowColor].CGColor,(id)[UIColorredColor].CGColor];
[gradientLayeraddSublayer:rightLayer];
这个渐变层只是一个中间变量,是不能显示出来的,我这里只是演示一下,现在我们已经拿到了渐
您可能关注的文档
最近下载
- 剪映短视频策划、拍摄、剪辑实战教程:精细剪辑短视频PPT教学课件.pptx VIP
- 剪映短视频策划、拍摄、剪辑实战教程:剪映剪辑基础PPT教学课件.pptx VIP
- 食品安全运输保障措施.docx VIP
- 剪映短视频策划、拍摄、剪辑实战教程:短视频拍摄PPT教学课件.pptx VIP
- 2023-2024年执业药师继续教育答案-便秘的中药治疗.docx VIP
- Willingness to Communicate in外文电子书籍.pdf VIP
- 2022年 考研英语二真题及答案解析.pdf VIP
- 普通高中体育与健康课程标准2017年版2020年修订解读与培训课件.pptx VIP
- tb 10106-2023《铁路工程地基处理技术规程》(OCR).pdf VIP
- FATCA法案.pdf VIP
文档评论(0)