扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一、简介
成都创新互联专注于宁津网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供宁津营销型网站建设,宁津网站制作、宁津网页设计、宁津网站官网定制、成都小程序开发服务,打造宁津网络公司原创品牌,更为您提供宁津网站排名全网营销落地服务。
UUChart是一个用于绘制图表的第三方,尤其适合去绘制折线图。自己再做一个医院相关的项目时,需要对一周内的血压进行监控,需要绘制折线图来表示出高压、低压的走向,因此学习了一下。
二、下载地址:
https://github.com/ZhipingYang/UUChartView
三、使用
第一步、首先我们将下载下来的文件解压,里面有一个UUChar的文件夹,然后将整个文件夹都拖到项目里面。我们会发现里面有UUBar.h、UUChart.h等文件,这些就是UUChart的具体实现。
第二步、我们需要在引用的.h文件中引入
#import “UUChart.h"
然后实现代理
@interface BloodPressureViewController : BaseViewController
然后我们需要实例化一个UUChart.我自己实例化的是:UUChart *bloodPressureCharView;
实例化三个数组:
NSMutableArray *xValues; //这个是横坐标的内容 NSMutableArray *yValues1; //这个是竖坐标的内容(高压) NSMutableArray *yValues2; //这个是竖坐标的内容(低压)
第三步、实现代理方法
#pragma mark - UUCharView Delegate//该方法是返回实例化的折线图的横坐标-(NSArray *)UUChart_xLableArray:(UUChart *)chart { return xValues; }//该方法是返回实例化的折线图的竖坐标(若返回一个就是一条折线图,我这里需要显示高压低压,所以返回了两个)-(NSArray *)UUChart_yValueArray:(UUChart *)chart { return @[yValues1,yValues2]; }//这里返回纵坐标的范围。-(CGRange)UUChartChooseRangeInLineChart:(UUChart *)chart { return CGRangeMake(200,0); }//这里用于设置是否显示最大值最小值。 -(BOOL)UUChart:(UUChart *)chart ShowMaxMinAtIndex:(NSInteger)index { return YES; }//颜色数组- (NSArray *)UUChart_ColorArray:(UUChart *)chart { return @[UUGreen,UURed,UUBrown]; }- (BOOL)UUChart:(UUChart *)chart ShowHorizonLineAtIndex:(NSInteger)index { return YES; }
第四步、我们把自己需要设置的数据放入三个数组中即可。
题外话,我自己需要一个功能就是把所有的折线图中的点的纵坐标都显示出来,所以对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]; }
这样就可以把所有点的纵坐标显示出来了。效果如图所示
另附请求处理源码,希望大家用得到
View Code
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流