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

2016-01-17  本文已影响110人  与世倾听X游定终生

圆圈动画

-(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));

上一篇下一篇

猜你喜欢

热点阅读