一、簡介
成都創(chuàng)新互聯(lián)專注于寧津網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供寧津營銷型網(wǎng)站建設(shè),寧津網(wǎng)站制作、寧津網(wǎng)頁設(shè)計、寧津網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造寧津網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供寧津網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
UUChart是一個用于繪制圖表的第三方,尤其適合去繪制折線圖。自己再做一個醫(yī)院相關(guān)的項目時,需要對一周內(nèi)的血壓進行監(jiān)控,需要繪制折線圖來表示出高壓、低壓的走向,因此學(xué)習(xí)了一下。
二、下載地址:
https://github.com/ZhipingYang/UUChartView
三、使用
第一步、首先我們將下載下來的文件解壓,里面有一個UUChar的文件夾,然后將整個文件夾都拖到項目里面。我們會發(fā)現(xiàn)里面有UUBar.h、UUChart.h等文件,這些就是UUChart的具體實現(xiàn)。
第二步、我們需要在引用的.h文件中引入
#import “UUChart.h"
然后實現(xiàn)代理
@interface BloodPressureViewController : BaseViewController
然后我們需要實例化一個UUChart.我自己實例化的是:UUChart *bloodPressureCharView;
實例化三個數(shù)組:
NSMutableArray *xValues; //這個是橫坐標(biāo)的內(nèi)容 NSMutableArray *yValues1; //這個是豎坐標(biāo)的內(nèi)容(高壓) NSMutableArray *yValues2; //這個是豎坐標(biāo)的內(nèi)容(低壓)
第三步、實現(xiàn)代理方法
#pragma mark - UUCharView Delegate//該方法是返回實例化的折線圖的橫坐標(biāo)-(NSArray *)UUChart_xLableArray:(UUChart *)chart { return xValues; }//該方法是返回實例化的折線圖的豎坐標(biāo)(若返回一個就是一條折線圖,我這里需要顯示高壓低壓,所以返回了兩個)-(NSArray *)UUChart_yValueArray:(UUChart *)chart { return @[yValues1,yValues2]; }//這里返回縱坐標(biāo)的范圍。-(CGRange)UUChartChooseRangeInLineChart:(UUChart *)chart { return CGRangeMake(200,0); }//這里用于設(shè)置是否顯示最大值最小值。 -(BOOL)UUChart:(UUChart *)chart ShowMaxMinAtIndex:(NSInteger)index { return YES; }//顏色數(shù)組- (NSArray *)UUChart_ColorArray:(UUChart *)chart { return @[UUGreen,UURed,UUBrown]; }- (BOOL)UUChart:(UUChart *)chart ShowHorizonLineAtIndex:(NSInteger)index { return YES; }
第四步、我們把自己需要設(shè)置的數(shù)據(jù)放入三個數(shù)組中即可。
題外話,我自己需要一個功能就是把所有的折線圖中的點的縱坐標(biāo)都顯示出來,所以對UUChart稍加修改即可。修改方法如下:
找到UULineChar.m然后找到如下代碼:
- (void)addPoint:(CGPoint)point index:(NSInteger)index isShow:(BOOL)isHollow value:(CGFloat)value { UIView *view = [[UIView alloc]initWithFrame:CGRectMake(5, 5, 8, 8)]; view.center = point; view.layer.masksToBounds = YES; view.layer.cornerRadius = 4; view.layer.borderWidth = 2; view.layer.borderColor = [[_colors objectAtIndex:index] CGColor]?[[_colors objectAtIndex:index] CGColor]:UUGreen.CGColor; if (isHollow) { view.backgroundColor = [UIColor whiteColor]; }else{ view.backgroundColor = [_colors objectAtIndex:index]?[_colors objectAtIndex:index]:UUGreen; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(point.x-UUTagLabelwidth/2.0, point.y-UULabelHeight*2, UUTagLabelwidth, UULabelHeight)]; label.font = [UIFont systemFontOfSize:10]; label.textAlignment = NSTextAlignmentCenter; label.textColor = view.backgroundColor; label.text = [NSString stringWithFormat:@"%d",(int)value]; [self addSubview:label]; } [self addSubview:view]; }
我們只需要把if else判斷去掉即可。即
- (void)addPoint:(CGPoint)point index:(NSInteger)index isShow:(BOOL)isHollow value:(CGFloat)value { UIView *view = [[UIView alloc]initWithFrame:CGRectMake(5, 5, 8, 8)]; view.center = point; view.layer.masksToBounds = YES; view.layer.cornerRadius = 4; view.layer.borderWidth = 2; view.layer.borderColor = [[_colors objectAtIndex:index] CGColor]?[[_colors objectAtIndex:index] CGColor]:UUGreen.CGColor; // if (isHollow) {// view.backgroundColor = [UIColor whiteColor];// }else{ view.backgroundColor = [_colors objectAtIndex:index]?[_colors objectAtIndex:index]:UUGreen; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(point.x-UUTagLabelwidth/2.0, point.y-UULabelHeight*2, UUTagLabelwidth, UULabelHeight)]; label.font = [UIFont systemFontOfSize:10]; label.textAlignment = NSTextAlignmentCenter; label.textColor = view.backgroundColor; label.text = [NSString stringWithFormat:@"%d",(int)value]; [self addSubview:label];// } [self addSubview:view]; }
這樣就可以把所有點的縱坐標(biāo)顯示出來了。效果如圖所示
另附請求處理源碼,希望大家用得到
View Code