首页 > 代码库 > 圆圈loader的动画

圆圈loader的动画

圆圈loader的动画

by 伍雪颖

技术分享

github代码

- (void)awakeFromNib {
    [selfsetup];
    [
self startAnimation];
}

- (
void)setup {
   
self.backgroundColor= [UIColorclearColor];
   
self.backgroundLayer= [CAShapeLayerlayer];
   
_backgroundLayer.strokeColor= [UIColorcolorWithRed:0.129green:0.455blue:0.627alpha:1.0].CGColor;
   
_backgroundLayer.fillColor= self.backgroundColor.CGColor;
   
_backgroundLayer.lineCap= kCALineCapRound;
   
_backgroundLayer.lineWidth= 1;
    [
self.layeraddSublayer:_backgroundLayer];
}

- (
void)startAnimation {
   
CGFloat startAngle = - ((float)M_PI/ 2);
   
CGFloat endAngle = (1.8f* (float)M_PI) + startAngle;
   
   
UIBezierPath*processBackgroundPath = [UIBezierPathbezierPath];
    processBackgroundPath.
lineWidth= 1;
    [processBackgroundPath
addArcWithCenter:CGPointMake(self.bounds.size.width/2,self.bounds.size.height/2)
                                    
radius:(self.bounds.size.width- 1)/2
                                
startAngle:startAngle
                                  
endAngle:endAngle
                                 
clockwise:YES];
   
_backgroundLayer.path= processBackgroundPath.CGPath;
   
   
CABasicAnimation*rotationAnimation = [CABasicAnimationanimationWithKeyPath:@"transform.rotation.z"];
    rotationAnimation.
toValue= [NSNumbernumberWithFloat:M_PI* 2.0];
    rotationAnimation.
duration= 1;
    rotationAnimation.
cumulative= YES;
    rotationAnimation.
repeatCount= HUGE_VALF;
    [
_backgroundLayeraddAnimation:rotationAnimationforKey:@"rotationAnimation"];
}

- (
void)drawRect:(CGRect)rect {
   
_backgroundLayer.frame= self.bounds;
}

圆圈loader的动画