//
// 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