美文网首页
简单的圆圈动画,自己看的

简单的圆圈动画,自己看的

作者: 与世倾听X游定终生 | 来源:发表于2016-01-17 23:23 被阅读110次

    圆圈动画

    -(UIView*)circleViewWithColor:(UIColor*)color Title:(NSString*)title titleValue:(NSString*)titleValue{

    UIView*circleView = [[UIViewalloc]init];

    circleView.layer.cornerRadius=30;

    circleView.layer.masksToBounds=YES;

    //底部的灰色圆圈

    CAShapeLayer*bottomShapeLayer = [CAShapeLayerlayer];

    bottomShapeLayer.strokeColor=XKColor(229,229,229).CGColor;

    bottomShapeLayer.fillColor= [UIColorclearColor].CGColor;

    bottomShapeLayer.lineWidth=3;

    bottomShapeLayer.path= [UIBezierPathbezierPathWithRoundedRect:CGRectMake(0,0,60,60)cornerRadius:30].CGPath;

    [circleView.layeraddSublayer:bottomShapeLayer];

    ///橘黄色的layer

    CAShapeLayer*ovalShapeLayer = [CAShapeLayerlayer];

    ovalShapeLayer.strokeColor= color.CGColor;

    ovalShapeLayer.fillColor= [UIColorclearColor].CGColor;

    ovalShapeLayer.lineWidth=3;

    ovalShapeLayer.path= [UIBezierPathbezierPathWithRoundedRect:CGRectMake(0,0,60,60)cornerRadius:30].CGPath;

    [circleView.layerinsertSublayer:ovalShapeLayerabove:bottomShapeLayer];

    ///起点动画

    //CABasicAnimation * strokeStartAnimation = [CABasicAnimation animationWithKeyPath:@"strokeStart"];

    //strokeStartAnimation.fromValue = @(1.0);

    //strokeStartAnimation.toValue = @(0.2);

    ///终点动画

    CABasicAnimation* strokeEndAnimation = [CABasicAnimationanimationWithKeyPath:@"strokeEnd"];

    strokeEndAnimation.fromValue=@(0.0);

    NSString*tempStr;

    if([titleValuerangeOfString:@"%"].length) {

    tempStr = [titleValuesubstringToIndex:titleValue.length-1];

    }else{

    tempStr = titleValue;

    }

    CGFloatscale = [tempStrfloatValue] /100.0;

    strokeEndAnimation.toValue=@(scale >1?1:scale);

    ///组合动画

    CAAnimationGroup*animationGroup = [CAAnimationGroupanimation];

    animationGroup.animations=@[strokeEndAnimation];

    animationGroup.duration=1.0;

    animationGroup.timingFunction= [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseOut];

    animationGroup.repeatCount=1;

    animationGroup.fillMode=kCAFillModeForwards;

    animationGroup.removedOnCompletion=NO;

    [ovalShapeLayeraddAnimation:animationGroupforKey:nil];

    UILabel*circleTitle = [[UILabelalloc]init];

    circleTitle.text= title;

    circleTitle.textColor=XKSubTitleOrContentColor;

    circleTitle.font= [UIFontsystemFontOfSize:10];

    [circleViewaddSubview:circleTitle];

    UILabel*circleValue = [[UILabelalloc]init];

    circleValue.text= titleValue;

    circleValue.textColor= color;

    circleValue.font= [UIFontsystemFontOfSize:16];

    [circleViewaddSubview:circleValue];

    //[_circleView mas_makeConstraints:^(MASConstraintMaker *make) {

    //make.top.equalTo(_workPosition.mas_bottom).offset(10);

    //make.centerX.equalTo(weakself.mas_centerX);

    //make.size.mas_equalTo(CGSizeMake(60, 60));

    //}];

    [circleTitlemas_makeConstraints:^(MASConstraintMaker*make) {

    make.centerY.equalTo(circleView.mas_centerY).offset(-10);

    make.centerX.equalTo(circleView.mas_centerX);

    }];

    [circleValuemas_makeConstraints:^(MASConstraintMaker*make) {

    make.centerY.equalTo(circleView.mas_centerY).offset(10);

    make.centerX.equalTo(circleTitle.mas_centerX);

    }];

    returncircleView;

    }

    宽度限制伸缩

    NSLog(@"%f----%f",CGRectGetMinX(_DistanceLabel.frame),CGRectGetMaxX(_userHeadImageView.frame));

    CGFloatwidth = (CGRectGetMinX(_DistanceLabel.frame) -20) - (CGRectGetMaxX(_userHeadImageView.frame) +8);

    [_userNamemas_makeConstraints:^(MASConstraintMaker*make) {

    make.left.equalTo(_userHeadImageView.mas_right).offset(8);

    make.width.mas_equalTo(width);

    }];

    NSLog(@"----%@",NSStringFromCGRect(_userName.frame));

    相关文章

      网友评论

          本文标题:简单的圆圈动画,自己看的

          本文链接:https://www.haomeiwen.com/subject/drbckttx.html