亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

iOS UIBezierPath實現餅狀圖

瀏覽:2日期:2022-09-16 18:17:37

本文實例為大家分享了iOS UIBezierPath實現餅狀圖的具體代碼,供大家參考,具體內容如下

首先看效果圖:

iOS UIBezierPath實現餅狀圖

代碼:

#import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface CircleView : UIView @property (nonatomic, copy) NSArray<NSNumber *> *valueArray; @end NS_ASSUME_NONNULL_END // #define S_W self.frame.size.width #import 'CircleView.h' @interface CircleView () @property (nonatomic, copy) NSArray<NSNumber *> *dataArray;@property (nonatomic, assign) CGFloat endAngleFloat; // 每個扇形起點角度 @end @implementation CircleView - (void)setValueArray:(NSArray<NSNumber *> *)valueArray { self.dataArray = valueArray; self.endAngleFloat = 0; [self creatUI];} - (void)creatUI { for (NSInteger i = 0; i<_dataArray.count; i++) { CAShapeLayer *shapeLayer = [CAShapeLayer layer]; shapeLayer.lineWidth = 1; shapeLayer.fillColor = [UIColor colorWithRed:arc4random()%256/255.0f green:arc4random()%256/255.0f blue:arc4random()%256/255.0f alpha:1].CGColor; shapeLayer.strokeColor = shapeLayer.fillColor; CGFloat valueFloat = [_dataArray[i] floatValue]; CGFloat angleFloat = valueFloat*2*M_PI/100; UIBezierPath *bezierPath = [UIBezierPath bezierPath]; [bezierPath moveToPoint:CGPointMake(S_W/2, S_W/2)]; [bezierPath addLineToPoint:CGPointMake(S_W*(1+cos(_endAngleFloat))/2, S_W*(1+sin(_endAngleFloat))/2)]; [bezierPath addArcWithCenter:CGPointMake(S_W/2, S_W/2) radius:S_W/2 startAngle:_endAngleFloat endAngle:angleFloat+_endAngleFloat clockwise:YES]; [bezierPath closePath]; shapeLayer.path = bezierPath.CGPath; [self.layer addSublayer:shapeLayer]; [self addLabelWithFloat:valueFloat angleFloat:angleFloat]; _endAngleFloat += angleFloat; }} - (void)addLabelWithFloat:(CGFloat)valueFloat angleFloat:(CGFloat)angleFloat { UILabel *label = [[UILabel alloc] init]; label.center = CGPointMake(S_W*(2+cos(angleFloat/2 + _endAngleFloat))/4, S_W*(2+sin(angleFloat/2 + _endAngleFloat))/4); label.bounds = CGRectMake(0, 0, 50, 50); label.text = [NSString stringWithFormat:@'%.f%%',valueFloat]; label.textColor = UIColor.whiteColor; label.textAlignment = NSTextAlignmentCenter; label.font = [UIFont systemFontOfSize:14]; [self addSubview:label];}

外部調用:

CircleView *view = [[CircleView alloc] initWithFrame:CGRectMake(20, 100, self.view.frame.size.width-40, self.view.frame.size.width-40)]; view.valueArray = @[@(10),@(20),@(30),@(40)]; [self.view addSubview:view];

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: IOS
相關文章:
主站蜘蛛池模板: 夜色毛片永久免费 | 精品国产乱码久久久久久一区二区 | 亚洲第一区香蕉_国产a | 成人国产精品视频 | 免费观看女人一摸全是水 | 2018久久久国产精品 | 欧美一级淫片免费观看 | 久久久久久久国产免费看 | 新版天堂资源中文在线 | 精品一区二区三区18 | 五月六月伊人狠狠丁香网 | 日韩天天干 | a级特黄毛片免费观看 | 久久精品国产99久久久 | 国产精品日韩欧美在线 | 亚洲精品综合一二三区在线 | 欧美一级大黄特黄毛片视频 | 在线视频久草 | 国产在线精品一区二区中文 | 一级特黄牲大片免费视频 | 久久亚洲欧洲日产国码 | 国产90后美女露脸在线观看 | 日韩欧美亚洲国产 | 特级a毛片 | 欧美日韩在线视频不卡一区二区三区 | 亚洲永久中文字幕在线 | 99久久国内精品成人免费 | 亚洲一区二区免费 | 亚洲在线一区二区三区 | 精品亚洲综合久久中文字幕 | 老司机午夜精品网站在线观看 | 好吊妞998视频免费观看在线 | 在线观看日本视频免费 | 精品一区二区三区中文 | 最新国产美女肝交视频播放 | 国内精品久久久久久影院8f | 精品综合久久久久久蜜月 | 欧美激情视频在线观看一区二区三区 | 国产手机国产手机在线 | 欧美精品一区二区三区免费 | 99九九精品国产高清自在线 |