我這里是要用三個參數進行比然后用圓來顯示各占百分之多少的樣子。我在自定義的View里面寫的。
//數組里面裝的是字典,,字典里有兩個key -> strokeColor和precent
@property (nonatomic,assign) NSArray *circleArray;
//? ? 下面的三個分別代表的是我們這里要展示的三個參數
-(void)drawRectViewWithVip:(float)Vip andBackMoney:(float)BackMoney andClass:(float)Class;
在點M文件里面
__block float a = 0;
? ? NSArray* circleArray? =@[
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @{
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"strokeColor":RGBCOLOR(98,178,255),
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"precent":@(Vip/(BackMoney+Class+Vip))//+d+e+f
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @{
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"strokeColor":[UIColor whiteColor],
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"precent":@(d/(BackMoney+Class+Vip+d+e+f))
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @{
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"strokeColor":RGBCOLOR(255,231,132),
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"precent":@(BackMoney/(BackMoney+Class+Vip))//+d+e+f
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @{
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"strokeColor":[UIColor whiteColor],
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"precent":@(e/(BackMoney+Class+Vip+d+e+f))
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @{
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"strokeColor":RGBCOLOR(255,175,137),
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"precent":@(Class/(BackMoney+Class+Vip))//+d+e+f
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @{
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"strokeColor":[UIColor whiteColor],
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"precent":@(f/(BackMoney+Class+Vip+d+e+f))
//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ];
? ? [circleArrayenumerateObjectsUsingBlock:^(NSDictionary*obj,NSUIntegeridx,BOOL*_Nonnullstop) {
? ? ? ? //創建出CAShapeLayer
? ? ? ? self.shapeLayer= [CAShapeLayerlayer];
? ? ? ? self.shapeLayer.frame =CGRectMake(0,0, self.bounds.size.width,self.bounds.size.height);//設置shapeLayer的尺寸和位置
? ? ? ? //? ? self.shapeLayer.position = self.view.center;
? ? ? ? self.shapeLayer.fillColor = [UIColor clearColor].CGColor;//填充顏色為ClearColor
? ? ? ? //設置線條的寬度和顏色
? ? ? ? self.shapeLayer.lineWidth=10.0f;
? ? ? ? self.shapeLayer.strokeColor= [obj[@"strokeColor"]CGColor];
? ? ? ? //創建出圓形貝塞爾曲線
? ? ? ? UIBezierPath *circlePath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0, self.bounds.size.width,self.bounds.size.height)];
? ? ? ? //讓貝塞爾曲線與CAShapeLayer產生聯系
? ? ? ? self.shapeLayer.path= circlePath.CGPath;
? ? ? ? self.shapeLayer.strokeStart= a;
? ? ? ? self.shapeLayer.strokeEnd= [obj[@"precent"]floatValue] + a;
? ? ? ? a =self.shapeLayer.strokeEnd;
? ? ? ? //添加并顯示
? ? ? ? [self.layeraddSublayer:self.shapeLayer];
? ? ? ? //添加圓環動畫
? ? ? ? CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
? ? ? ? pathAnimation.duration=1.0;
? ? ? ? pathAnimation.fromValue=@(0);
? ? ? ? pathAnimation.toValue=@(1);
? ? ? ? pathAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
? ? ? ? [self.shapeLayeraddAnimation:pathAnimationforKey:@"strokeEnd"];
? ? }];