使用CAShapeLayer和贝塞尔画进度条

参考文章http://blog.it985.com/7654.html

pragma mark---画进度条使用的

@property (nonatomic, assign) CGFloat add;
@property (nonatomic, strong) NSTimer *timer;
@property (nonatomic, strong) CAShapeLayer *shapeLayer;

-(void)initWithShapeLayer{

self.shapeLayer = [CAShapeLayer layer];
self.shapeLayer.frame = CGRectMake(0, 0, 200, 200);//设置shapeLayer的尺寸和位置
self.shapeLayer.position = self.center;
self.shapeLayer.fillColor = [UIColor clearColor].CGColor;
//起点
self.shapeLayer.strokeStart = 0;
//终点
// self.shapeLayer.strokeEnd = 0.8;
//圆:起点为0 ,终点为1,如果终点设置为0.8就是把圆分成10分,占8份

//设置线条的宽度和颜色
self.shapeLayer.lineWidth = 1.0f;
self.shapeLayer.strokeColor = [UIColor redColor].CGColor;

//创建出圆形的贝塞尔曲线
UIBezierPath *circlePath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 200, 200)];
//让贝塞尔曲线与cashaperLayer产生联系
self.shapeLayer.path = circlePath.CGPath;
//添加并显示
[self.layer addSublayer:self.shapeLayer];

_add = 0.1;

_timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(circleAnima) userInfo:self repeats:YES];
}

//利用贝塞尔曲线画进度条
-(void)circleAnima{
   if (self.shapeLayer.strokeEnd > 1 && self.shapeLayer.strokeStart < 1) {
    self.shapeLayer.strokeStart += _add;
}else if(self.shapeLayer.strokeStart == 0){
    self.shapeLayer.strokeEnd += _add;
}

if (self.shapeLayer.strokeEnd == 0) {
    self.shapeLayer.strokeStart = 0;
}

if (self.shapeLayer.strokeStart == self.shapeLayer.strokeEnd) {
    self.shapeLayer.strokeEnd = 0;
}
if (self.shapeLayer.strokeEnd > 1 && self.shapeLayer.strokeStart > 1) {
    
    self.shapeLayer.strokeStart = self.shapeLayer.strokeEnd;
    
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,274评论 25 709
  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 13,893评论 12 197
  • 跟这三样 抗痘4年 也算是这类皮肤的战斗机 讲真是非常辣眼睛 这种严重程度连我自己都快要放弃了 对生活充满各种不自...
    游来游去_13da阅读 4,187评论 1 1
  • 凌晨四点 “怎么还不睡” “醒了 所以想看看这城市” 你不知道 脆弱的月光才舍得安然 更不知道 大地才刚刚睡下 我...
    a7cc706a19b1阅读 1,562评论 3 3
  • 文/ 岳鹏飞 来源:简书 好久没写过像样子的文章了,记得上次这样认真的还是写检讨,第一段我索性也就不写了,希望别嫌...
    岳鹏飞阅读 1,868评论 2 2

友情链接更多精彩内容