iOS-雷達(dá)圖(RadarChart)

前言:相信很多開(kāi)發(fā)者會(huì)見(jiàn)過(guò)很多數(shù)據(jù)要在雷達(dá)圖上展示逗载,也自己使用過(guò)一些第三方或者直接封裝。但是,有些第三方并不能很好地滿足項(xiàng)目需要,自己就索性封裝了一個(gè)沸伏。

可能跟大部分人封裝的一樣,主要功能如下:

  • 可設(shè)置不超過(guò)20個(gè)元素的雷達(dá)圖
  • 支持文字是否可點(diǎn)擊
  • 支持分割值是否可顯示
  • 支持文字的展示樣式
  • 支持順時(shí)針逆時(shí)針繪制

來(lái)看下效果圖

雷達(dá)圖1.png
雷達(dá)圖2.png

1.如何使用

直接看代碼船万,使用起來(lái)非常簡(jiǎn)單街立。

    NSMutableArray *items = [NSMutableArray array];
    NSArray *values = @[@100,@50,@70,@30,@50,@40,@45,];
    NSArray *descs = @[@"蘋(píng)果",@"香蕉",@"花生",@"橙子",@"車(chē)子",@"奶子",@"房子",];
    for (int i = 0; i < values.count; i++) {
        
        GBRadarChartDataItem *item = [GBRadarChartDataItem dataItemWithValue:[values[i] floatValue] description:descs[i]];
        [items addObject:item];
    }

    GBRadarChart *radarChart = [[GBRadarChart alloc] initWithFrame:CGRectMake(0, 100, CGRectGetWidth(self.view.bounds), 400) items:items valueDivider:20];
    radarChart.isShowGraduation = YES;
    radarChart.labelStyle = GBRadarChartLabelStyleHorizontal;
    [radarChart strokeChart];
    [self.view addSubview:radarChart];
    _radarChart = radarChart;

2.看下源代碼,了解一下實(shí)現(xiàn)過(guò)程

首先是.h中的屬性和方法

typedef NS_ENUM(NSUInteger, GBRadarChartLabelStyle) {
    GBRadarChartLabelStyleCircle = 0, //圓環(huán)
    GBRadarChartLabelStyleHorizontal, //水平
    GBRadarChartLabelStyleHidden, //隱藏
};

@interface GBRadarChart : UIView

/**
 初始化圖表

 @param frame frame
 @param items 模型數(shù)組
 @param unitValue 均分值
 @return 對(duì)象
 */
- (id)initWithFrame:(CGRect)frame items:(NSArray <GBRadarChartDataItem *> *)items valueDivider:(CGFloat)unitValue;

/** 繪制圖表 */
- (void)strokeChart;

/**
 更新圖表
 @param chartData 模型數(shù)組
 */
- (void)updateChartWithChartData:(NSArray <GBRadarChartDataItem *> *)chartData;

/** Array of `RadarChartDataItem` objects, one for each corner. */
@property (nonatomic, strong) NSArray <GBRadarChartDataItem *> *chartDataItems;
/** 展示的樣式 */
@property (nonatomic, assign) GBRadarChartLabelStyle labelStyle;
/** The unit of this chart ,default is 1 */
@property (nonatomic, assign) CGFloat valueDivider;
/** The maximum for the range of values to display on the chart */
@property (nonatomic, assign) CGFloat maxValue;
/** Default is gray. */
@property (nonatomic, strong) UIColor *webColor;
/** Default is green , with an alpha of 0.7 */
@property (nonatomic, strong) UIColor *plotFillColor;
/** Default is green*/
@property (nonatomic, strong) UIColor *plotStrokeColor;
/** Default is black */
@property (nonatomic, strong) UIColor *fontColor;
/** Default is orange */
@property (nonatomic, strong) UIColor *graduationColor;
/** Default is 12 */
@property (nonatomic, assign) CGFloat titleFontSize;
/** Tap the label will display detail value ,default is YES. */
@property (nonatomic, assign) BOOL canLabelTouchable;
/** is show graduation on the chart ,default is NO. */
@property (nonatomic, assign) BOOL isShowGraduation;
/** is display animated, default is YES */
@property (nonatomic, assign) BOOL displayAnimated;
/** 是否是順時(shí)針?lè)较蚶L制什湘,默認(rèn)是YES*/
@property (nonatomic, assign) BOOL clockwise;
@end

.m中代碼就不粘貼了长赞,直接上demo吧,里面有詳細(xì)的實(shí)現(xiàn)過(guò)程闽撤,也可以根據(jù)自己的需求在里面直接修改代碼得哆。
傳送門(mén):RadarChartDemo

大家有什么不理解的或者好的意見(jiàn),評(píng)論回復(fù)吧哟旗,我會(huì)盡量回復(fù)大家~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贩据,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子闸餐,更是在濱河造成了極大的恐慌饱亮,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舍沙,死亡現(xiàn)場(chǎng)離奇詭異近上,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)拂铡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)壹无,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人感帅,你說(shuō)我怎么就攤上這事斗锭。” “怎么了留瞳?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵拒迅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)璧微,這世上最難降的妖魔是什么作箍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮前硫,結(jié)果婚禮上胞得,老公的妹妹穿的比我還像新娘。我一直安慰自己屹电,他們只是感情好阶剑,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著危号,像睡著了一般牧愁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上外莲,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天猪半,我揣著相機(jī)與錄音,去河邊找鬼偷线。 笑死磨确,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的声邦。 我是一名探鬼主播乏奥,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼亥曹!你這毒婦竟也來(lái)了邓了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤媳瞪,失蹤者是張志新(化名)和其女友劉穎驶悟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體材失,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年硫豆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了龙巨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熊响,死狀恐怖旨别,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情汗茄,我是刑警寧澤秸弛,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響递览,放射性物質(zhì)發(fā)生泄漏叼屠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一绞铃、第九天 我趴在偏房一處隱蔽的房頂上張望镜雨。 院中可真熱鬧,春花似錦儿捧、人聲如沸荚坞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)颓影。三九已至,卻和暖如春懒鉴,著一層夾襖步出監(jiān)牢的瞬間诡挂,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工疗我, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咆畏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓吴裤,卻偏偏與公主長(zhǎng)得像旧找,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子麦牺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 下午覺(jué)得自己不想在家里待著钮蛛,就去了附近一家公園,新開(kāi)的剖膳。下午4點(diǎn)左右魏颓,園中只有員工,干著割草吱晒,清潔等工作等甸饱。 有很...
    瑞洵閱讀 281評(píng)論 0 1
  • 古人云:三十而立叹话。這個(gè)立,不僅是立家、立業(yè)墩瞳、立德驼壶、立言、立功,還要立起一個(gè)男人的偉岸形象喉酌。也就是說(shuō),30歲,男人不...
    衛(wèi)氏傳媒閱讀 972評(píng)論 0 0
  • 為什么他們都看我 這讓我覺(jué)得不安 我又不能對(duì)他們說(shuō)別看我 那會(huì)引來(lái)更多人看我 為什么他們都看我 我不喜歡被別人看 ...
    一格閱讀 154評(píng)論 0 2
  • 今晚寶爸表現(xiàn)不錯(cuò)热凹,陪孩子搭起了積木泵喘,此處應(yīng)有掌聲,鼓勵(lì)鼓勵(lì)般妙!寶貝看到圓柱狀的積木說(shuō)那是保險(xiǎn)纪铺,由圓柱想到防盜門(mén)上...
    風(fēng)雨夢(mèng)閱讀 177評(píng)論 1 2