最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS UIBezierPath實(shí)現(xiàn)餅狀圖

 更新時(shí)間:2021年03月19日 16:24:07   作者:xtayqria  
這篇文章主要為大家詳細(xì)介紹了iOS UIBezierPath實(shí)現(xiàn)餅狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了iOS UIBezierPath實(shí)現(xiàn)餅狀圖的具體代碼,供大家參考,具體內(nèi)容如下

首先看效果圖:

代碼:

#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; // 每個(gè)扇形起點(diǎn)角度
 
@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];
}

外部調(diào)用:

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];

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS打電話、發(fā)短信、發(fā)郵件實(shí)例代碼

    iOS打電話、發(fā)短信、發(fā)郵件實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了iOS打電話、發(fā)短信、發(fā)郵件實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 實(shí)例詳解IOS開發(fā)之UIWebView

    實(shí)例詳解IOS開發(fā)之UIWebView

    iOS開發(fā)之UIWebView 是本文要介紹的內(nèi)容,UIWebView是iOS sdk中一個(gè)最常用的控件,是內(nèi)置的瀏覽器控件,我們可以用它來瀏覽網(wǎng)頁、打開文檔等等
    2016-02-02
  • iOS 11 safeArea詳解及iphoneX 適配

    iOS 11 safeArea詳解及iphoneX 適配

    本篇文章主要介紹了iOS 11 safeArea詳解及iphoneX 適配,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • IOS 中KVC的使用方法實(shí)例詳解

    IOS 中KVC的使用方法實(shí)例詳解

    這篇文章主要介紹了IOS 中KVC的使用方法實(shí)例詳解的相關(guān)資料,這提供具體使用方法,希望能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • iOS 13適配匯總(推薦)

    iOS 13適配匯總(推薦)

    這篇文章主要介紹了iOS 13適配匯總,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • IOS 字符串常用處理詳細(xì)介紹

    IOS 字符串常用處理詳細(xì)介紹

    這篇文章主要介紹了IOS 字符串常用處理詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • iOS利用CALayer實(shí)現(xiàn)動(dòng)畫加載的效果

    iOS利用CALayer實(shí)現(xiàn)動(dòng)畫加載的效果

    網(wǎng)上關(guān)于動(dòng)畫加載的效果大多每一個(gè)圓圈都是使用UIView,因?yàn)檫@種容易控制,但是這里用的是CALayer,文中給出了詳細(xì)的實(shí)現(xiàn)示例代碼,相信會(huì)對(duì)大家的學(xué)習(xí)和理解很有幫助,感興趣的朋友們下面來一起看看吧。
    2016-10-10
  • 詳解iOS開發(fā)中解析JSON中的boolean類型的數(shù)據(jù)遇到的問題

    詳解iOS開發(fā)中解析JSON中的boolean類型的數(shù)據(jù)遇到的問題

    這篇文章主要介紹了詳解iOS開發(fā)中解析JSON中的boolean類型的數(shù)據(jù)遇到的問題,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2016-12-12
  • iOS自定義UITabBar中間按鈕

    iOS自定義UITabBar中間按鈕

    這篇文章主要為大家詳細(xì)介紹了iOS自定義UITabBar中間按鈕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • IOS多線程編程的3種實(shí)現(xiàn)方法

    IOS多線程編程的3種實(shí)現(xiàn)方法

    這篇文章主要介紹了IOS多線程編程的3種實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2015-11-11

最新評(píng)論

来宾市| 承德县| 巫山县| 上虞市| 洪江市| 洪江市| 马鞍山市| 阿图什市| 句容市| 二连浩特市| 鲁山县| 墨竹工卡县| 宜州市| 温州市| 保定市| 瑞丽市| 石狮市| 鲁山县| 定兴县| 任丘市| 正宁县| 兰考县| 沙河市| 扬州市| 山丹县| 辽宁省| 康乐县| 青阳县| 蒙自县| 拉孜县| 收藏| 庆安县| 商河县| 娄底市| 防城港市| 招远市| 勐海县| 永康市| 广河县| 洪雅县| 乐亭县|