CAShapeLayer绘画圆环,圆环进度条

//

//  WZKView.m

//  WZKTestSvn

//

//  Created by psylife on 15/10/9.

//  Copyright © 2015 psylife. All rights reserved.

//


#import "WZKView.h"


@implementation WZKView


/*

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect {

    // Drawing code

}

*/

/*

 jiaoDu  大圆环角度(一般是一个圆形M_PI*2

 startAngle  大圆环开始的位置

 endAngle 大圆环结束的位置

 fillColor 大圆环填充的颜色

 

 strokeColor 划线的颜色

 

 lineWidth 划线的线宽

 

 strokeStart 划线开始位置

 

 strokeEnd 划线结束位置

 

 radius 划线的半径(也就是大圆环的半径,划线和大圆环是一起的,只是填充颜色不同显的不一样,导致就像两个一样)

 */

-(CAShapeLayer*)huanXingJiaoDu:(CGFloat)jiaoDu startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle tianChongColor:(UIColor*)fillColor huaXianColor:(UIColor*)strokeColor lineWidth:(CGFloat)lineWidth huaKaiShi:(CGFloat)strokeStart huaJieShu:(CGFloat)strokeEnd huaxianradius:(CGFloat)radius donghuaDuration:(CGFloat)duration

{

    UIBezierPath* path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.frame.size.width/2.f, self.frame.size.height/2.f) radius:radius startAngle:startAngle endAngle:jiaoDu clockwise:YES];

    CAShapeLayer* layer = [CAShapeLayer layer];

    layer.frame = self.bounds;

    layer.path = path.CGPath;

    layer.strokeColor = strokeColor.CGColor;

    layer.fillColor = fillColor.CGColor;

    layer.lineCap = kCALineCapRound;

    layer.lineWidth = lineWidth;

    layer.strokeStart = strokeStart;

    layer.strokeEnd = strokeEnd;

    

    

    CABasicAnimation *ani = [ CABasicAnimation animationWithKeyPath : NSStringFromSelector ( @selector (strokeEnd))];

    

    ani. fromValue = @0 ;

    

    ani. toValue = @1 ;

    

    ani. duration = duration ;

    

    [layer addAnimation :ani forKey : NSStringFromSelector ( @selector (strokeEnd))];

    

    return layer;

}

-(id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self != nil) {

//        CAMetalLayer;

//        CAScrollLayer;

//        CAShapeLayer;

//        CATextLayer;

        CAShapeLayer* layer1 = [self huanXingJiaoDu:M_PI*2 startAngle:0.0f endAngle:M_PI*2 tianChongColor:[UIColor clearColor] huaXianColor:[UIColor redColor] lineWidth:4.0f huaKaiShi:0.0f huaJieShu:1.0f huaxianradius:self.frame.size.width/2.0f+20 donghuaDuration:5];

        


        [self.layer addSublayer:layer1];

        [self performSelector:@selector(add2) withObject:nil afterDelay:5];

        [self performSelector:@selector(add3) withObject:nil afterDelay:5*2];

        [self performSelector:@selector(add4) withObject:nil afterDelay:5*3];

        [self performSelector:@selector(add5) withObject:nil afterDelay:5*4];

   

        

        

        

    }

    return  self;

}

-(void)add2

{

     CAShapeLayer* layer2 = [self huanXingJiaoDu:M_PI*2 startAngle:0.0f endAngle:M_PI*2 tianChongColor:[UIColor clearColor] huaXianColor:[UIColor darkGrayColor] lineWidth:4.0f huaKaiShi:0.0f huaJieShu:1.0f huaxianradius:self.frame.size.width/2.0f+20-4 donghuaDuration:5];

    [self.layer addSublayer:layer2];

}

-(void)add3

{

       CAShapeLayer* layer3 = [self huanXingJiaoDu:M_PI*2 startAngle:0.0f endAngle:M_PI*2 tianChongColor:[UIColor clearColor] huaXianColor:[UIColor yellowColor] lineWidth:4.0f huaKaiShi:0.0f huaJieShu:1.0f huaxianradius:self.frame.size.width/2.0f+20-8 donghuaDuration:5];

    [self.layer addSublayer:layer3];

}

-(void)add4

{

       CAShapeLayer* layer4 = [self huanXingJiaoDu:M_PI*2 startAngle:0.0f endAngle:M_PI*2 tianChongColor:[UIColor clearColor] huaXianColor:[UIColor blueColor] lineWidth:4.0f huaKaiShi:0.0f huaJieShu:1.0f huaxianradius:self.frame.size.width/2.0f+20-12 donghuaDuration:5];

    [self.layer addSublayer:layer4];

}

-(void)add5

{

    CAShapeLayer* layer5 = [self huanXingJiaoDu:M_PI*2 startAngle:0.0f endAngle:M_PI*2 tianChongColor:[UIColor clearColor] huaXianColor:[UIColor orangeColor] lineWidth:4.0f huaKaiShi:0.0f huaJieShu:1.0f huaxianradius:self.frame.size.width/2.0f+20-16 donghuaDuration:5];

    [self.layer addSublayer:layer5];

}


@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值