ifish/Ifish/controllers/HotBar/Views/IfishChatView.m

252 lines
7.1 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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