252 lines
7.1 KiB
Objective-C
252 lines
7.1 KiB
Objective-C
//
|
||
// IfishChatView.m
|
||
// Ifish
|
||
//
|
||
// Created by 罗艺 on 2018/8/27.
|
||
// Copyright © 2018年 lianlian. All rights reserved.
|
||
//
|
||
|
||
#import "IfishChatView.h"
|
||
#import "IfishHistroyVo.h"
|
||
|
||
|
||
|
||
@interface IfishChatView()
|
||
@property(nonatomic,strong)NSMutableArray*line1;
|
||
@property(nonatomic,strong)NSMutableArray*line2;
|
||
@property(nonatomic,strong)UIView *lablesView;
|
||
@property(nonatomic,strong)UILabel*numLable;
|
||
@end
|
||
|
||
|
||
@implementation IfishChatView
|
||
|
||
-(UILabel *)numLable{
|
||
if (_numLable==nil) {
|
||
_numLable=[[UILabel alloc]init];
|
||
[self addSubview:_numLable];
|
||
}
|
||
return _numLable;
|
||
}
|
||
|
||
-(UIView *)lablesView{
|
||
if (_lablesView==nil) {
|
||
_lablesView=[[UIView alloc]init];
|
||
_lablesView.frame=CGRectMake(290, 0, 28, 190);
|
||
_lablesView.backgroundColor=[UIColor clearColor];
|
||
[self addSubview:_lablesView];
|
||
}
|
||
return _lablesView;
|
||
}
|
||
|
||
-(NSArray *)line1{
|
||
if (_line1==nil) {
|
||
_line1=[NSMutableArray array];
|
||
}
|
||
[_line1 removeAllObjects];
|
||
if (_datas.count) {
|
||
NSSortDescriptor *ageSD = [NSSortDescriptor sortDescriptorWithKey:@"heaterGatheringTime_int" ascending:YES];
|
||
self.datas = [self.datas sortedArrayUsingDescriptors:@[ageSD]];
|
||
|
||
// CGFloat gapW= 357*scale*0.1;
|
||
for (int i=0; i<self.datas.count; i++) {
|
||
IfishHistroyVo*vo=self.datas[i];
|
||
CGFloat x=(([vo.heaterGatheringTime floatValue]/24)*270+19);
|
||
if(vo.heaterWaterTemperature.integerValue>350){
|
||
vo.heaterWaterTemperature=@"350";
|
||
}else if(vo.heaterWaterTemperature.integerValue<250){
|
||
continue;
|
||
}
|
||
CGFloat y=188*(1-((vo.heaterWaterTemperature.integerValue*0.1-25)/10))+36.5;//*-1*+158;
|
||
CGPoint p1=CGPointMake(x, y);
|
||
// NSLog(@"%f-------%f--%f-",y,vo.heaterWaterTemperature.integerValue*0.1,x);
|
||
[_line1 addObject:NSStringFromCGPoint(p1)];
|
||
}
|
||
}
|
||
|
||
return _line1;
|
||
}
|
||
|
||
-(NSArray *)line2{
|
||
if (_line2==nil) {
|
||
_line2=[NSMutableArray array];
|
||
}
|
||
if (_datas.count) {
|
||
NSSortDescriptor *PhSD = [NSSortDescriptor sortDescriptorWithKey:@"heaterPh_int" ascending:YES];
|
||
NSMutableArray*arr = [[self.datas sortedArrayUsingDescriptors:@[PhSD]] mutableCopy];
|
||
|
||
IfishHistroyVo*vo=arr[0];
|
||
NSInteger miniPh=vo.heaterPh_int-50;
|
||
|
||
IfishHistroyVo*vo1=arr[arr.count-1];
|
||
NSInteger maxPh=vo1.heaterPh_int+50;
|
||
|
||
NSInteger range=maxPh-miniPh;
|
||
|
||
|
||
[_line2 removeAllObjects];
|
||
for (int i=0; i<self.datas.count; i++) {
|
||
IfishHistroyVo*vo=self.datas[i];
|
||
CGFloat x=(([vo.heaterGatheringTime floatValue]/24)*270+19);
|
||
CGFloat y=(1-((vo.heaterPh.floatValue-miniPh)/range))*188+36.5;
|
||
|
||
CGPoint p1=CGPointMake(x, y);
|
||
[_line2 addObject:NSStringFromCGPoint(p1)];
|
||
}
|
||
}
|
||
|
||
return _line2;
|
||
}
|
||
|
||
-(void)setLables{
|
||
NSSortDescriptor *PhSD = [NSSortDescriptor sortDescriptorWithKey:@"heaterPh_int" ascending:YES];
|
||
NSMutableArray*arr = [[self.datas sortedArrayUsingDescriptors:@[PhSD]] mutableCopy];
|
||
|
||
IfishHistroyVo*vo=arr[0];
|
||
NSInteger miniPh=vo.heaterPh_int-50;
|
||
|
||
IfishHistroyVo*vo1=arr[arr.count-1];
|
||
NSInteger maxPh=vo1.heaterPh_int+50;
|
||
|
||
NSInteger range=maxPh-miniPh;
|
||
|
||
if (_lablesView) {
|
||
[self.lablesView removeFromSuperview];
|
||
_lablesView=nil;
|
||
}
|
||
// [self addSubview:self.lablesView];
|
||
for (int i=0; i<10; i++) {
|
||
UILabel*lable=[[UILabel alloc]init];
|
||
NSInteger pos=10-i;
|
||
lable.frame=CGRectMake(0, i*9+i*10+33, 24, 9);
|
||
lable.text=[NSString stringWithFormat:@"%.0f",miniPh+range*0.1*pos];
|
||
lable.font=[UIFont systemFontOfSize:8];
|
||
|
||
[self.lablesView addSubview:lable];
|
||
}
|
||
NSLog(@"lable=================");
|
||
}
|
||
|
||
|
||
-(void)setDatas:(NSArray *)datas{
|
||
_datas=datas;
|
||
[self setLables];
|
||
[self layoutIfNeeded];
|
||
}
|
||
|
||
-(void)drawLine{
|
||
UIColor *color = [UIColor redColor];
|
||
[color set]; //设置线条颜色
|
||
|
||
UIBezierPath* path = [UIBezierPath bezierPath];
|
||
path.lineWidth = 1.0;
|
||
|
||
path.lineCapStyle = kCGLineCapRound; //线条拐角
|
||
path.lineJoinStyle = kCGLineJoinRound; //终点处理
|
||
|
||
|
||
|
||
// Draw the lines
|
||
for (int i=0; i<self.line1.count; i++) {
|
||
|
||
NSString* p=self.line1[i];
|
||
if (i==0) {
|
||
[path moveToPoint:CGPointFromString(p)];//起点
|
||
}
|
||
[path addLineToPoint:CGPointFromString(p)];
|
||
}
|
||
|
||
// [path closePath];//第五条线通过调用closePath方法得到的
|
||
|
||
[path stroke];//Draws line 根据坐标点连线
|
||
|
||
for (int i=0; i<self.line1.count; i++) {
|
||
|
||
NSString* p=self.line1[i];
|
||
CGPoint point=CGPointFromString(p);
|
||
UIBezierPath *path0 = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(point.x-2, point.y-2, 4, 4) cornerRadius:2];
|
||
[path0 stroke];
|
||
[path0 fill];
|
||
|
||
// UIButton*btn0=[UIButton buttonWithType:1];
|
||
// btn0.frame=CGRectMake(point.x-3, point.x-3, 6, 6);
|
||
// [btn0 addTarget:self action:@selector(clickPoint:) forControlEvents:UIControlEventTouchUpInside];
|
||
// [self addSubview:btn0];
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
UIColor *color1 = [UIColor blueColor];
|
||
[color1 set]; //设置线条颜色
|
||
|
||
UIBezierPath* path1 = [UIBezierPath bezierPath];
|
||
path1.lineWidth = 1.0;
|
||
|
||
|
||
path1.lineCapStyle = kCGLineCapRound; //线条拐角
|
||
path1.lineJoinStyle = kCGLineJoinRound; //终点处理
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// [path1 moveToPoint:CGPointMake(0.0, 0.0)];//起点
|
||
|
||
// Draw the lines
|
||
for (int i=0; i<self.line2.count; i++) {
|
||
NSString* p=self.line2[i];
|
||
if (i==0) {
|
||
[path1 moveToPoint:CGPointFromString(p)];//起点
|
||
}
|
||
[path1 addLineToPoint:CGPointFromString(p)];
|
||
}
|
||
|
||
// [path closePath];//第五条线通过调用closePath方法得到的
|
||
|
||
// [path stroke];//Draws line 根据坐标点连线
|
||
// CGFloat dashPattern[] = {3,1};// 3实线,1空白
|
||
|
||
// [path1 setLineDash:dashPattern count:1 phase:1];
|
||
[path1 stroke];//颜色填充
|
||
|
||
for (int i=0; i<self.line1.count; i++) {
|
||
|
||
NSString* p=self.line2[i];
|
||
CGPoint point=CGPointFromString(p);
|
||
UIBezierPath *path01 = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(point.x-1.5, point.y-1.5, 3, 3) cornerRadius:2];
|
||
[path01 stroke];
|
||
[path01 fill];
|
||
|
||
// UIButton*btn1=[UIButton buttonWithType:1];
|
||
// btn1.frame=CGRectMake(point.x-3, point.x-3, 6, 6);
|
||
// btn1.tag=i;
|
||
// btn1.backgroundColor=[UIColor blackColor];
|
||
// [btn1 addTarget:self action:@selector(clickPoint:) forControlEvents:UIControlEventTouchUpInside];
|
||
// [self addSubview:btn1];
|
||
}
|
||
}
|
||
|
||
-(void)clickPoint:(UIButton*)btn{
|
||
IfishHistroyVo*vo=self.datas[btn.tag];
|
||
self.numLable.text=vo.heaterWaterTemperature;
|
||
}
|
||
|
||
-(void)clickPoint1:(UIButton*)btn{
|
||
IfishHistroyVo*vo=self.datas[btn.tag];
|
||
self.numLable.text=vo.heaterPh;
|
||
}
|
||
|
||
//
|
||
-(void)drawRect:(CGRect)rect{
|
||
[self drawLine];
|
||
}
|
||
|
||
|
||
@end
|