欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

相關(guān)文章

  • iOS制作帶彈跳動(dòng)畫(huà)發(fā)布界面

    iOS制作帶彈跳動(dòng)畫(huà)發(fā)布界面

    這篇文章主要為大家詳細(xì)介紹了iOS制作帶彈跳動(dòng)畫(huà)發(fā)布界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • iOS11 WKWebView內(nèi)容過(guò)濾規(guī)則詳解

    iOS11 WKWebView內(nèi)容過(guò)濾規(guī)則詳解

    本篇文章主要介紹了iOS11 WKWebView內(nèi)容過(guò)濾規(guī)則詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • iOS 捕獲程序崩潰日志

    iOS 捕獲程序崩潰日志

    我們常常會(huì)遇到iPhone手機(jī)或者iPad平板上運(yùn)行APP崩潰的問(wèn)題,有時(shí)候打開(kāi)某個(gè)APP,卻一下子“閃退”了。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),這個(gè)絕對(duì)是頭疼的問(wèn)題。那么如何獲取到iOS設(shè)備崩潰日志呢?這個(gè)提供一些簡(jiǎn)單的方法,共開(kāi)發(fā)者與用戶溝通使用。
    2015-06-06
  • IOS中UIWebView的使用詳解

    IOS中UIWebView的使用詳解

    這篇文章主要介紹了IOS中UIWebView的使用詳解,涉及到初始化與三種加載方式,一些常用的屬性和變量及ios7中的一些新特征,本文介紹的非常詳細(xì),感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02
  • MAC中顯示隱藏文件和不顯示隱藏文件的方法(超簡(jiǎn)單)

    MAC中顯示隱藏文件和不顯示隱藏文件的方法(超簡(jiǎn)單)

    下面小編就為大家分享一篇MAC中顯示隱藏文件和不顯示隱藏文件的方法(超簡(jiǎn)單),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 單純聊一聊iOS10適配

    單純聊一聊iOS10適配

    這篇文章主要為大家簡(jiǎn)單介紹了iOS10適配的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 簡(jiǎn)單談?wù)刢/c++中#import、#include和@class的區(qū)別

    簡(jiǎn)單談?wù)刢/c++中#import、#include和@class的區(qū)別

    對(duì)于#import,我想做過(guò)iOS開(kāi)發(fā)的人應(yīng)該都不陌生。在開(kāi)發(fā)過(guò)程中,當(dāng)我們需要聲明某一個(gè)類時(shí),都需要去引用。而#imclude的話,在我們學(xué)習(xí)C時(shí)就已經(jīng)知道了,他的作用也是引用聲明的意思。在表面上他們的作用似乎都是一樣的。但是在具體功能實(shí)現(xiàn)方式上,還是有著很大的區(qū)別。
    2018-01-01
  • iOS屏幕旋轉(zhuǎn)與鎖屏的示例代碼

    iOS屏幕旋轉(zhuǎn)與鎖屏的示例代碼

    這篇文章主要介紹了iOS屏幕旋轉(zhuǎn)與鎖屏的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 解析iOS應(yīng)用開(kāi)發(fā)中對(duì)設(shè)計(jì)模式中的抽象工廠模式的實(shí)現(xiàn)

    解析iOS應(yīng)用開(kāi)發(fā)中對(duì)設(shè)計(jì)模式中的抽象工廠模式的實(shí)現(xiàn)

    這篇文章主要介紹了解析iOS應(yīng)用開(kāi)發(fā)中對(duì)設(shè)計(jì)模式中的抽象工廠模式的實(shí)現(xiàn),示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2016-03-03
  • ios實(shí)現(xiàn)簡(jiǎn)單隨便移動(dòng)的AR功能

    ios實(shí)現(xiàn)簡(jiǎn)單隨便移動(dòng)的AR功能

    這篇文章主要為大家詳細(xì)介紹了ios實(shí)現(xiàn)簡(jiǎn)單隨便走的AR功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評(píng)論