V5.0.0bug修复

This commit is contained in:
wbzhan
2019-08-29 14:07:40 +08:00
parent 23c5d6f60d
commit 685a2b8676
17 changed files with 247 additions and 485 deletions
+31 -146
View File
@@ -149,7 +149,7 @@ Assign BOOL isInitHostoryView;
_changeWaterView.hidden=NO;
return _changeWaterView;
}
//设置换水周期
-(void)didSelectRow1:(NSString *)v andRow2:(NSString *)v2{
v=[v stringByReplacingOccurrencesOfString:@"" withString:@""];
v2=[v2 stringByReplacingOccurrencesOfString:@":00" withString:@""];
@@ -159,54 +159,31 @@ Assign BOOL isInitHostoryView;
}
IfishHotBarVo*vo=self.datas[4];
vo.title=str;
if (!self.vo.heater) {
self.vo.heater = InitObject(IfishHeaterVo);
}
self.vo.heater.heaterCycle=v;
self.vo.heater.heaterReminderTime=v2;
[self setTeampleture];
[self.mainTableView reloadData];
}
-(void)submitText:(NSString *)w andh:(NSString *)h andV:(NSString *)v{
IfishHotBarVo*vo=self.datas[1];
float heaterVolume;
if (w&&h&&v) {
heaterVolume=[w integerValue]*[h integerValue]*[v integerValue]*0.001;
self.vo.heater.heaterVolume=[NSString stringWithFormat:@"%0.1f",heaterVolume];
self.vo.heater.heaterLong=v;
self.vo.heater.heaterWidth=w;
self.vo.heater.heaterHeight=h;
}
if (self.vo.heater.heaterVolume.length) {
vo.title=[NSString stringWithFormat:@"鱼缸容量 %@L",self.vo.heater.heaterVolume];
vo.subTitle=[NSString stringWithFormat:@"推荐流量:%.1fL--%.1fL",[self.vo.heater.heaterVolume intValue]*1.5,[self.vo.heater.heaterVolume intValue]*2.0];
[self.mainTableView reloadData];
}
[self setHeigh:h andW:w andLong:v];
}
-(void)didSelectTeamptrue:(NSString *)up andDown:(NSString *)down andT:(NSString *)t andWarnCode:(NSString *)code{
up=[up stringByReplacingOccurrencesOfString:@"°c" withString:@""];
down=[down stringByReplacingOccurrencesOfString:@"°c" withString:@""];
t=[t stringByReplacingOccurrencesOfString:@"°c" withString:@""];
// [self setHeatTeapWith:t];
//设置加热温度
-(void)didChangeTemperature:(NSString *)temp{
temp=[temp stringByReplacingOccurrencesOfString:@"°c" withString:@""];
IfishHotBarVo*vo=self.datas[0];
self.vo.heaterNum=[NSString stringWithFormat:@"%f",t.floatValue];
self.vo.heaterNum=[NSString stringWithFormat:@"%f",temp.floatValue];
vo.title=[NSString stringWithFormat:@"设置温度 %.1f°c",[self.vo.heaterNum floatValue]];
[self.mainTableView reloadData];
[self setHeatTeapWith:temp];
}
//设置预警温度
-(void)didSelectTeamptrue:(NSString *)up andDown:(NSString *)down andWarnCode:(NSString *)code{
up=[up stringByReplacingOccurrencesOfString:@"°c" withString:@""];
down=[down stringByReplacingOccurrencesOfString:@"°c" withString:@""];
self.vo.wornCode=code;
// self.vo.wornCode=[NSString stringWithFormat:@"%llu",[dataContorl hexToTen:self.vo.wornCode]];
self.vo.upTeamp=up;
self.vo.downTeamp=down;
[self setHeatTeapWith:t];
// [self setTeampletureWithUp:self.vo.upTeamp andDown:self.vo.downTeamp andHnum:0 andWarmC:self.vo.wornCode];
[self setTeampletureWithUp:self.vo.upTeamp andDown:self.vo.downTeamp andHnum:0 andWarmC:self.vo.wornCode];
}
@@ -321,66 +298,7 @@ Assign BOOL isInitHostoryView;
}
#pragma mark------请求服务器-------
-(void)setHeigh:(NSString*)h andW:(NSString*)w andLong:(NSString*)l{
// 参数名称 参数类型 是否必须 说明描述
// heaterId Integer 是 保存信息此字段为空
// 修改信息此字段有值
// heaterMacAddress String 是 加热棒mac地址
// heaterVolume String 是 鱼缸容积
// heaterLong String 是 鱼缸长
// heaterWidth String 是 鱼缸宽
// heaterHeight String 是 鱼缸高
// heaterCycle String 是 换水提醒周期
// c String 是 提醒时间
if ([l isEqualToString:@""]) {
[self.view makeToast:@"请输入鱼缸长"];
return;
}else if ([w isEqualToString:@""]){
[self.view makeToast:@"请输入鱼缸宽"];
return;
}else if([h isEqualToString:@""])
{
[self.view makeToast:@"请输入鱼缸高"];
return;
}
NSString*v=@"";
NSString*r=@"";
NSString*c=@"";
NSString*heaterId=@"";
if (self.vo.heater) {
v=self.vo.heater.heaterVolume;
c=self.vo.heater.heaterCycle;
r=self.vo.heater.heaterReminderTime;
heaterId=self.vo.heater.heaterId;
}
NSDictionary*para=@{
@"heaterId":heaterId,
@"heaterMacAddress":self.devicemodel.macAddress,
@"heaterVolume":v,
@"heaterLong":l,
@"heaterWidth":w,
@"heaterHeight":h,
@"heaterCycle":c,
@"heaterRemindTime":r
};
[SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack];
[AFHttpTool requestWihtMethod:RequestMethodTypePost url:SaveHotBarInfo params:para success:^(id response) {
NSLog(@"-----------%@",response);
NSDictionary*dict=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil];
NSString*result=dict[@"result"];
if ([result integerValue]==100) {
// self.vo=[IfishHotBarVo mj_objectWithKeyValues:dict[@"data"]];
[SVProgressHUD dismiss];
[self showLableAction:@"修改成功"];
}
} failure:^(NSError *err) {
}];
}
//删除加热棒
-(void)deleteHotBarInfo{
NSDictionary*para=@{
@@ -401,17 +319,11 @@ Assign BOOL isInitHostoryView;
//重置数据库
NSArray*deviceArry=[[DataCenter defaultDtacenter]valueForKey:@"deviceInfo"];
NSMutableArray *newArr = [NSMutableArray arrayWithArray:deviceArry];
for (DeviceModel *model in deviceArry) {
if ([model.deviceId isEqual:self.devicemodel.deviceId]) {
[newArr removeObject:model];
}
}
[[DataCenter defaultDtacenter] setValue: newArr forKey:@"deviceInfo"];
if ([newArr count]==0) {
@@ -444,7 +356,6 @@ Assign BOOL isInitHostoryView;
[SVProgressHUD dismiss];
if ([result integerValue]==100) {
self.vo=[IfishHotBarVo mj_objectWithKeyValues:dict[@"data"]];
if (self.vo.phs.count>0) {
NSDate *curDate = [NSDate dateWithTimeInterval:self.curDay*60*60*-24 sinceDate:[NSDate date]];
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];//创建一个日期格式化器
@@ -456,8 +367,7 @@ Assign BOOL isInitHostoryView;
self.historyView.datas=self.vo.phs;
self.historyView.hidden=YES;
}
//去除鱼缸容积,改为设置预警温度
//去除鱼缸容积
IfishHotBarVo*vo1=self.datas[4];
if (self.vo.heater.heaterCycle.length) {
if (self.vo.heater.heaterReminderTime.length) {
@@ -491,16 +401,16 @@ Assign BOOL isInitHostoryView;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row==3) {
if (indexPath.row==2){//水泵流量,点击无效果
}else if (indexPath.row==3) {//历史趋势
if (!self.isInitHostoryView) {
[self getHistoryDataRequest];
}
self.historyView.hidden=NO;
}else if (indexPath.row==2){
}
else{
}else{
[self changeWaterView];
self.changeWaterView.hotVo=self.vo;
self.changeWaterView.viewType=indexPath.row;
@@ -575,8 +485,6 @@ Assign BOOL isInitHostoryView;
self.vo.downTeamp=[info substringWithRange:NSMakeRange(50, 4)];
self.vo.downTeamp=[NSString stringWithFormat:@"%f",[dataContorl hexToTen:self.vo.downTeamp]*0.1];
[self.mainTableView reloadData];
}
@@ -599,6 +507,7 @@ Assign BOOL isInitHostoryView;
//2 最低报警温度,关闭报警时传0
//2 最高报警温度,关闭报警时传0
//2 CRC16校验码
//设置换水周期
-(void)setTeampleture{
if (!self.vo.heater.heaterCycle||!self.vo.heater.heaterReminderTime) {
return;
@@ -610,14 +519,12 @@ Assign BOOL isInitHostoryView;
NSString*heaterHeight=@"";
NSString*heaterId=@"";
NSString*heaterVolume=@"";
if (self.vo.heater) {
longNum=self.vo.heater.heaterLong;
heaterWidth=self.vo.heater.heaterWidth;
heaterHeight=self.vo.heater.heaterHeight;
if (self.vo.heater.heaterId) {
heaterId=self.vo.heater.heaterId;
heaterVolume=self.vo.heater.heaterVolume;
}
if (self.vo.heater.heaterVolume) {
heaterVolume=self.vo.heater.heaterVolume;
}
NSDictionary*para=@{
@"heaterId":heaterId,
@"heaterMacAddress":self.devicemodel.macAddress,
@@ -641,30 +548,19 @@ Assign BOOL isInitHostoryView;
}];
}
#pragma mark-----打开开关----
#pragma mark-----打开预警温度开关----
-(void)clickWormCode:(NSString *)code{
IfishHotBarPackegeVo*pvo=[[IfishHotBarPackegeVo alloc]init];
pvo.msgType=@"00";
pvo.funcCode=@"05";
pvo.sendAdr=self.devicemodel.macAddress;
pvo.reciceAdr=self.devicemodel.macAddress;
pvo.lenth=@"16";
pvo.warnCode=code;
pvo.downTeamptrue=@"0000";
pvo.upTeamptrue=@"0000";
pvo.crcCode=@"0000";
NSString*stateString=[pvo description];
NSData*selctorData=[dataContorl stringToHexData:stateString];
[[Socketsingleton sharedInstance].clientSocket writeData:selctorData withTimeout:-1 tag:0];
[[Socketsingleton sharedInstance].clientSocket readDataWithTimeout:-1 tag:0];
@@ -700,21 +596,14 @@ Assign BOOL isInitHostoryView;
pvo.upTeamptrue=[dataContorl leftAddZero:4 andStr:pvo.upTeamptrue];
}
}
pvo.crcCode=@"0000";
NSString*stateString=[pvo description];
NSData*selctorData=[dataContorl stringToHexData:stateString];
self.vo.heaterNum=num;
[[Socketsingleton sharedInstance].clientSocket writeData:selctorData withTimeout:-1 tag:0];
[[Socketsingleton sharedInstance].clientSocket readDataWithTimeout:-1 tag:0];
// [self showLableAction:@"发送成功"];
[self showLableAction:@"发送成功"];
}
@@ -725,11 +614,7 @@ Assign BOOL isInitHostoryView;
-(void)setHeatTeapWith:(NSString*)num{
if(!num){
// [self.view makeToast:@"请选择加热温度"];
// self.vo.wornCode=[NSString stringWithFormat:@"%llu",[dataContorl hexToTen:self.vo.wornCode]];
[self setTeampletureWithUp:self.vo.upTeamp andDown:self.vo.downTeamp andHnum:0 andWarmC:self.vo.wornCode];
[self.view makeToast:@"请选择加热温度"];
return;
}
IfishPackageHeaderVo*header=[[IfishPackageHeaderVo alloc]init];
@@ -749,7 +634,7 @@ Assign BOOL isInitHostoryView;
NSString*stateString=[NSString stringWithFormat:@"%@%@%@",[header getHeader],num,crc];
NSData*selctorData=[dataContorl stringToHexData:stateString];
[[Socketsingleton sharedInstance].clientSocket writeData:selctorData withTimeout:-1 tag:0];
[[Socketsingleton sharedInstance].clientSocket writeData:selctorData withTimeout:-1 tag:0];
[[Socketsingleton sharedInstance].clientSocket readDataWithTimeout:-1 tag:0];
[self showLableAction:@"发送成功"];
@@ -12,7 +12,11 @@
@optional
-(void)didSelectRow1:(NSString*)v andRow2:(NSString*)v2;
-(void)submitText:(NSString*)w andh:(NSString*)h andV:(NSString*)v;
-(void)didSelectTeamptrue:(NSString*)up andDown:(NSString*)down andT:(NSString*)t andWarnCode:(NSString*)code;
//设置预警温度
-(void)didSelectTeamptrue:(NSString*)up andDown:(NSString*)down andWarnCode:(NSString*)code;
//设置加热温度
-(void)didChangeTemperature:(NSString*)temp;
//设置换水周期
-(void)didSelectRemindTime:(NSString*)time;
-(void)clickWormCode:(NSString*)code;
@end
@@ -229,6 +229,7 @@ Strong UIImageView *sepImage;
self.openBtn.hidden = YES;
[self.data1 removeAllObjects];
[self.data2 removeAllObjects];
self.titleLabel.text=@"请设置加热温度:";
if (viewType==0) {// 设置水温
self.topUiPick.hidden=NO;
[self.data1 addObjectsFromArray:self.templetrueArr];
@@ -280,7 +281,6 @@ Strong UIImageView *sepImage;
self.titleLabel.text=@"换水周期选择:";
self.selectVaule2=self.data1[0];
if (self.hotVo.heater.heaterCycle!=nil) {
[self.bottomUiPicker selectRow:[self.hotVo.heater.heaterCycle integerValue]-1 inComponent:0 animated:NO];
self.selectVaule2=self.hotVo.heater.heaterCycle;
}else{
@@ -300,7 +300,7 @@ Strong UIImageView *sepImage;
//点击open按钮
- (void)openBtnClick:(UIButton *)sender {
sender.selected=!sender.selected;
if(self.viewType==0){
if(self.viewType==1){//设置预警温度
self.hotVo.wornCode=sender.selected?@"01":@"00";
[self.myDelegate clickWormCode:self.hotVo.wornCode];
}
@@ -312,15 +312,16 @@ Strong UIImageView *sepImage;
//点击确定按钮
- (void)sureBtnClick:(UIButton *)sender{
self.hidden=YES;
if(_viewType==5){
[self.myDelegate didSelectRow1:self.selectVaule2 andRow2:self.selectVaule3];
}else if (_viewType==0){
// [self.myDelegate didSelectTeamptrue:self.selectVaule2];
// if(_viewType==5){
// [self.myDelegate didSelectRow1:self.selectVaule2 andRow2:self.selectVaule3];
// }else
if (_viewType==0) {//设置加热温度
[self.myDelegate didChangeTemperature:self.selectVaule1];
}
if (_viewType==1){//设置预警温度
NSString*code=self.openBtn.selected?@"01":@"00";
[self.myDelegate didSelectTeamptrue:self.selectVaule3 andDown:self.selectVaule2 andT:self.selectVaule1 andWarnCode:code];
}else if(_viewType==4){
// [self.myDelegate didSelectRemindTime:self.selectVaule2];
[self.myDelegate didSelectTeamptrue:self.selectVaule3 andDown:self.selectVaule2 andWarnCode:code];
}else if(_viewType==4){//设置换水周期
if(self.openBtn.selected==NO){
[self.myDelegate didSelectRow1:self.selectVaule2 andRow2:@""];
}else{
+11 -52
View File
@@ -10,7 +10,9 @@
#import "IfishHistroyVo.h"
#define Normal_heaterPh 499 //只有499才是正常流量
#define Rect_Width 248.f
#define Rect_Width kSizeFrom750(568)
#define Origin_Left kSizeFrom750(72)
#define Rect_Height kSizeFrom750(185)
@interface IfishChatView()
@property(nonatomic,strong)NSMutableArray*line1;
@property(nonatomic,strong)UIView *lablesView;
@@ -25,6 +27,7 @@ Strong NSMutableArray * heaterPhArray;//流量走势
if (_numLable==nil) {
_numLable=[[UILabel alloc]init];
[self addSubview:_numLable];
}
return _numLable;
}
@@ -40,13 +43,13 @@ Strong NSMutableArray * heaterPhArray;//流量走势
// CGFloat gapW= 357*scale*0.1;
for (int i=0; i<self.datas.count; i++) {
IfishHistroyVo*vo=self.datas[i];
CGFloat x=32 +([vo.heaterGatheringTime floatValue]/24)*Rect_Width;
CGFloat x=Origin_Left +([vo.heaterGatheringTime floatValue]/24)*Rect_Width;
if(vo.heaterWaterTemperature.integerValue>350){
vo.heaterWaterTemperature=@"350";
}else if(vo.heaterWaterTemperature.integerValue<250){
continue;
}
CGFloat y=80*(1-((vo.heaterWaterTemperature.integerValue*0.1-25)/10))+19;//*-1*+158;
CGFloat y=Rect_Height*(1-((vo.heaterWaterTemperature.integerValue*0.1-25)/10))+kSizeFrom750(43);//*-1*+158;
CGPoint p1=CGPointMake(x, y);
// NSLog(@"%f-------%f--%f-",y,vo.heaterWaterTemperature.integerValue*0.1,x);
[_line1 addObject:NSStringFromCGPoint(p1)];
@@ -66,10 +69,10 @@ Strong NSMutableArray * heaterPhArray;//流量走势
_heaterPhArray = InitObject(NSMutableArray);
//添加流量
for (int i=0; i<23; i++) {
CGFloat x=(i*(Rect_Width/24)+32);
CGFloat y=104;
CGFloat x=(i*(Rect_Width/24)+Origin_Left);
CGFloat y=kSizeFrom750(236);
UIView *lineView = [[UIView alloc] initWithFrame:RECT(x, y, Rect_Width/24, 1)];
lineView.tag = i+1000;
lineView.tag = i+100;
[self addSubview:lineView];
[_heaterPhArray addObject:lineView];
}
@@ -88,11 +91,11 @@ Strong NSMutableArray * heaterPhArray;//流量走势
//如果有时间段的数据拿不到,则直接使用虚线
if ([nextVo.heaterGatheringTime integerValue]-[vo.heaterGatheringTime integerValue]>1) {
for (int i=[vo.heaterGatheringTime intValue]; i<[nextVo.heaterGatheringTime intValue]; i++) {
UIView *emptyView = [self viewWithTag:i+1000];
UIView *emptyView = [self viewWithTag:i+100];
[self drawDashLine:emptyView lineLength:2 lineSpacing:1 lineColor:[UIColor redColor]];
}
}else{
UIView *lineView = [self viewWithTag:[vo.heaterGatheringTime integerValue]+1000];
UIView *lineView = [self viewWithTag:[vo.heaterGatheringTime integerValue]+100];
if([vo.heaterPh integerValue]==Normal_heaterPh&&[nextVo.heaterPh integerValue]==Normal_heaterPh){//正常流量
lineView.layer.backgroundColor = [UIColor greenColor].CGColor;
@@ -124,51 +127,7 @@ Strong NSMutableArray * heaterPhArray;//流量走势
// [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-1, point.y-1, 2, 2) cornerRadius:1];
// [path0 stroke];
// [path0 fill];
//
// }
// UIColor *color1 = [UIColor greenColor];
// [color1 set]; //设置线条颜色
//
// UIBezierPath* path1 = [UIBezierPath bezierPath];
// path1.lineWidth = 1.0;
//
// path1.lineCapStyle = kCGLineCapRound; //线条拐角
// path1.lineJoinStyle = kCGLineJoinRound; //终点处理
// // 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, point.y-1, 2, 2) cornerRadius:1];
// [path01 stroke];
// [path01 fill];
//
// }
}
/**
** lineView: 需要绘制成虚线的view
@@ -18,9 +18,6 @@ Strong UIView *bgView;
Strong IfishChatView *chartView;
Strong IfishChatView *chartHolder;
Strong UILabel *titleLabel;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *chartHeight;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *chartWidth;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *lableHeight;
Strong UIButton *predayButton;
Strong UIButton *nextdayButton;
Strong UIImageView *bgImage;
@@ -71,6 +68,7 @@ Strong UIImageView *bgImage;
- (IfishChatView *)chartHolder{
if (!_chartHolder) {
_chartHolder = InitObject(IfishChatView);
_chartHolder.backgroundColor = [UIColor clearColor];
}
return _chartHolder;
}
@@ -112,7 +110,7 @@ Strong UIImageView *bgImage;
}];
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(315);
make.width.mas_equalTo(kSizeFrom750(720));
make.center.mas_equalTo(self);
}];
@@ -125,25 +123,25 @@ Strong UIImageView *bgImage;
[self.bgImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(8);
make.centerX.width.mas_equalTo(self.bgView);
make.height.mas_equalTo(147);
make.height.mas_equalTo(kSizeFrom750(335));
make.bottom.mas_equalTo(self.bgView.mas_bottom).offset(-10);
}];
[self.chartHolder mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.width.mas_equalTo(self.bgImage);
make.height.mas_equalTo(130);
make.height.mas_equalTo(kSizeFrom750(260));
}];
[self.predayButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(10);
make.height.mas_equalTo(30);
make.width.mas_equalTo(60);
make.left.mas_equalTo(kSizeFrom750(20));
make.height.mas_equalTo(kSizeFrom750(60));
make.width.mas_equalTo(kSizeFrom750(120));
make.bottom.mas_equalTo(self.bgView.mas_bottom);
}];
[self.nextdayButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.centerY.mas_equalTo(self.predayButton);
make.right.mas_equalTo(-20);
make.right.mas_equalTo(-kSizeFrom750(40));
}];
[self.bgImage layoutIfNeeded];
@@ -1,113 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB" customClass="IfishHistoryView">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="69h-Z5-zDB">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<connections>
<action selector="clickBg:" destination="iN0-l3-epB" eventType="touchUpInside" id="d08-z9-v9h"/>
</connections>
</button>
<view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gCt-ke-ZyH">
<rect key="frame" x="10" y="164.5" width="355" height="338"/>
<subviews>
<button opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Wvo-bU-MzQ">
<rect key="frame" x="10" y="300" width="40" height="28"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<state key="normal" title="前一天">
<color key="titleColor" cocoaTouchSystemColor="darkTextColor"/>
</state>
<connections>
<action selector="clickBottomBar:" destination="iN0-l3-epB" eventType="touchUpInside" id="PKC-QD-Ler"/>
</connections>
</button>
<button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="867-ay-tug">
<rect key="frame" x="265" y="300" width="40" height="28"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<state key="normal" title="后一天">
<color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<connections>
<action selector="clickBottomBar:" destination="iN0-l3-epB" eventType="touchUpInside" id="ULN-iZ-cCh"/>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="history_bg" translatesAutoresizingMaskIntoConstraints="NO" id="KOt-M2-Dd2">
<rect key="frame" x="0.0" y="10" width="315" height="270"/>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qbs-BN-bJI" customClass="IfishChatView">
<rect key="frame" x="0.0" y="10" width="315" height="270"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dIS-Dw-qe1">
<rect key="frame" x="157.5" y="4" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="dIS-Dw-qe1" firstAttribute="centerX" secondItem="Qbs-BN-bJI" secondAttribute="centerX" id="QUF-1r-EB5"/>
<constraint firstItem="dIS-Dw-qe1" firstAttribute="top" secondItem="Qbs-BN-bJI" secondAttribute="top" constant="4" id="YmV-Oy-7IE"/>
<constraint firstAttribute="width" constant="315" id="dn1-rH-AVD"/>
<constraint firstAttribute="height" constant="270" id="lEF-HT-pRo"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="图表中温度,流量为0或不存在时图表中不体现" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gwB-Ff-4Go">
<rect key="frame" x="52" y="288" width="211" height="12"/>
<fontDescription key="fontDescription" type="system" pointSize="10"/>
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="338" id="8aC-Rs-V2O"/>
<constraint firstItem="KOt-M2-Dd2" firstAttribute="width" secondItem="Qbs-BN-bJI" secondAttribute="width" id="DNE-3F-DGX"/>
<constraint firstItem="gwB-Ff-4Go" firstAttribute="centerX" secondItem="gCt-ke-ZyH" secondAttribute="centerX" id="G61-Vc-66t"/>
<constraint firstAttribute="trailing" secondItem="867-ay-tug" secondAttribute="trailing" constant="10" id="Hi9-fm-dyZ"/>
<constraint firstItem="Qbs-BN-bJI" firstAttribute="top" secondItem="gCt-ke-ZyH" secondAttribute="top" constant="10" id="MgW-4X-UWJ"/>
<constraint firstItem="Qbs-BN-bJI" firstAttribute="centerX" secondItem="gCt-ke-ZyH" secondAttribute="centerX" id="Sfh-QT-Pn4"/>
<constraint firstAttribute="bottom" secondItem="Wvo-bU-MzQ" secondAttribute="bottom" constant="10" id="VlT-ro-Gad"/>
<constraint firstItem="gwB-Ff-4Go" firstAttribute="top" secondItem="Qbs-BN-bJI" secondAttribute="bottom" constant="8" id="c6L-8J-cWA"/>
<constraint firstItem="KOt-M2-Dd2" firstAttribute="height" secondItem="Qbs-BN-bJI" secondAttribute="height" id="dld-AE-g6d"/>
<constraint firstItem="Wvo-bU-MzQ" firstAttribute="leading" secondItem="gCt-ke-ZyH" secondAttribute="leading" constant="10" id="e1d-jF-7D0"/>
<constraint firstAttribute="width" constant="315" id="gGB-dF-pUn"/>
<constraint firstItem="KOt-M2-Dd2" firstAttribute="centerX" secondItem="Qbs-BN-bJI" secondAttribute="centerX" id="kVe-Gj-il4"/>
<constraint firstItem="KOt-M2-Dd2" firstAttribute="top" secondItem="Qbs-BN-bJI" secondAttribute="top" id="sZQ-CQ-LGw"/>
<constraint firstAttribute="bottom" secondItem="867-ay-tug" secondAttribute="bottom" constant="10" id="ySi-fC-9Of"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.20994755993150685" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="gCt-ke-ZyH" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="3wc-85-00z"/>
<constraint firstAttribute="bottom" secondItem="69h-Z5-zDB" secondAttribute="bottom" id="8ZV-V1-tgA"/>
<constraint firstItem="69h-Z5-zDB" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="OcJ-PS-bmM"/>
<constraint firstAttribute="trailing" secondItem="69h-Z5-zDB" secondAttribute="trailing" id="TYK-Fj-3Kv"/>
<constraint firstItem="69h-Z5-zDB" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="lLw-5d-kFj"/>
</constraints>
<connections>
<outlet property="bgView" destination="gCt-ke-ZyH" id="iMM-jo-xud"/>
<outlet property="chartHolder" destination="Qbs-BN-bJI" id="FDp-Om-vbH"/>
<outlet property="curDatetitle" destination="dIS-Dw-qe1" id="brm-O7-fOG"/>
</connections>
<point key="canvasLocation" x="-102" y="120"/>
</view>
</objects>
<resources>
<image name="history_bg" width="526" height="453.5"/>
</resources>
</document>