IOS实战 (2) 之 环形渐变色 进度展示条
来源:互联网 发布:java接口的使用方法 编辑:程序博客网 时间:2024/05/24 03:17
实现效果图
实现思路
- 自定义 View
- 添加 Label
- 使用 CAShapeLayer 绘制两个同心圆
- 加动画
核心代码
1.设置 圆形 路径
[UIBezierPath bezierPathWithArcCenter:<(CGPoint)> radius:<(CGFloat)> startAngle:<(CGFloat)> endAngle:<(CGFloat)> clockwise:<(BOOL)>
这个工厂方法用于画弧,参数说明如下:center: 弧线中心点的坐标radius: 弧线所在圆的半径startAngle: 弧线开始的角度值endAngle: 弧线结束的角度值clockwise: 是否顺时针画弧线
2.创建 CAshapeLayer(绘制两个同心圆)
self.garyCircleLayer = [CAShapeLayer layer]; self.garyCircleLayer.frame = self.bounds; self.garyCircleLayer.fillColor = [[UIColor clearColor] CGColor]; //圆形边界颜色 self.garyCircleLayer.strokeColor = [[UIColor colorWithHex:0xd5e0e2] CGColor] ; self.garyCircleLayer.opacity = 0.5; self.garyCircleLayer.lineCap = kCALineCapRound; self.garyCircleLayer.lineWidth = _grayCircleLineWidth; self.garyCircleLayer.path = [garypath CGPath]; [self.layer addSublayer:self.garyCircleLayer];
3.设置渐变图层
self.gradientLayer = [CAGradientLayer layer];self.gradientLayer.frame = self.bounds;[self.gradientLayer setColors:[NSArray arrayWithObjects: (id)[[UIColor colorWithHex:0xe2962c] CGColor], (id)[[UIColor colorWithHex:0xf5eb70 ] CGColor],nil]];[self.gradientLayer setLocations:@[@0.2, @0.5, @0.7, @1]]; [self.gradientLayer setStartPoint:CGPointMake(0, 0)];[self.gradientLayer setEndPoint:CGPointMake(1, 0)];[self.gradientLayer setMask:self.progressLayer];
4.设置动画
// 复原 [CATransaction begin]; [CATransaction setDisableActions:NO]; [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; [CATransaction setAnimationDuration:0]; self.progressLayer.strokeEnd = 0; [CATransaction commit]; [CATransaction begin]; [CATransaction setDisableActions:NO]; [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; [CATransaction setAnimationDuration:kAnimationTime]; self.progressLayer.strokeEnd = _percent ; [CATransaction commit];
总结
注意为了适应在 Xib 中创建 的View,需要在 layoutSubview 重新去设置 View 的 Frame.
源码下载
源码下载链接
0 0
- IOS实战 (2) 之 环形渐变色 进度展示条
- android 自定义环形进度条,渐变色
- iOS之view的背景绘制渐变色、文字渐变
- 【iOS】自定义控件入门:可拖动的环形进度
- iOS-swift环形进度指示器+图片加载动画
- 自定义View之线性进度展示
- iOS开发之渐变色的实现
- 【web前端】html+js实现流程进度展示条
- IOS 绘制 之渐变
- Android 环形进度Progress
- 简单的环形进度
- 自定义渐变环形进度条。
- iOS绘制渐变背景滑动条
- 用Chart.js画渐变色的曲线图,及展示某个点的坐标,踩坑实战
- react中用canvas制作渐变色的环形进度条
- EXTJS 滚动条之数据加载进度
- IOS 添加渐变色
- iOS 实现渐变色
- 55. Jump Game(重要)
- #451 Swap Nodes in Pairs
- session的个人理解
- 混合现实VR Twitch视频
- solr中DIH关于Oracle数据中clob类型字段的配置
- IOS实战 (2) 之 环形渐变色 进度展示条
- Problem 1011 Rikka with Parenthesis II
- 字符串以及字符串的操作
- Oracle伪列rownum
- 欢迎使用Markdown编辑器写博客
- muduo : TcpConnection's Write Buffer
- 线程同步技术
- DRM学习笔记一
- log4j common-logging