// // PBEDrawingsShowController.m // IphoneBIMe // // Created by zjf on 2018/12/18. // Copyright © 2018 ProBIM. All rights reserved. // #import "PBEDrawingsShowController.h" #import "PBDrawingsModel.h" #import "PBModelsModel.h" #import "PBDrawingsInfoModel.h" #import "PBExamineAddModel.h" #import "PBDrawingposModel.h" #define positionImageVW 30 #define positionImageVH 30 @interface PBEDrawingsShowController () @property (nonatomic,strong) UIScrollView *scrollView; @property (nonatomic, strong) UIImageView *imageV; @property (nonatomic, strong) UIImage *image; @property (nonatomic, strong) UIView *redView; @property (nonatomic, strong) UIImageView *positionImageV; @property (nonatomic, strong) PBDrawingsInfoModel *drawingsInfoModel; @end @implementation PBEDrawingsShowController - (void)viewDidLoad { [super viewDidLoad]; [self setNav]; [self setupUI]; } - (void)setNav { self.view.backgroundColor = [UIColor whiteColor]; PBBackNavItem *backNav = [PBBackNavItem backNacItem]; backNav.title = @"图纸"; [backNav addTarget:self action:@selector(backNavAction) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *backNavItem = [[UIBarButtonItem alloc] initWithCustomView:backNav]; self.navigationItem.leftBarButtonItem = backNavItem; UIBarButtonItem *saveItem = [[UIBarButtonItem alloc] initWithTitle:@"确认" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction)]; self.navigationItem.rightBarButtonItem = saveItem; self.navigationItem.rightBarButtonItem.enabled = NO; } - (void)backNavAction { [self.navigationController popViewControllerAnimated:YES]; } #pragma mark - 保存接口 - (void)saveAction { CGPoint point = self.redView.origin; NSInteger X = point.x; NSInteger Y = point.y; // NSLog(@"%zd- %zd",X,Y); NSInteger imageW = CGImageGetWidth(self.image.CGImage); NSInteger imageH = CGImageGetHeight(self.image.CGImage); //新建 PBDrawingposModel *drawingposModel = [[PBDrawingposModel alloc] init]; drawingposModel.FileId = self.drawingsInfoModel.ID; drawingposModel.PosX = [NSString stringWithFormat:@"%zd",X]; drawingposModel.PosY = [NSString stringWithFormat:@"%zd",Y]; drawingposModel.OpId = UserID; drawingposModel.OpUser = Realname; NSDate *currentDate = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm"]; NSString *dateString = [dateFormatter stringFromDate:currentDate]; drawingposModel.CreateDate = dateString; drawingposModel.X = [_drawingsInfoModel.leftptm valueForKey:@"X"]; drawingposModel.Y = [_drawingsInfoModel.leftptm valueForKey:@"Y"]; drawingposModel.Z = [_drawingsInfoModel.leftptm valueForKey:@"Z"]; drawingposModel.Pixel2MX = _drawingsInfoModel.pixel2mx; drawingposModel.Pixel2MY = _drawingsInfoModel.pixel2my; drawingposModel.Width = [NSString stringWithFormat:@"%zd",imageW]; drawingposModel.Height = [NSString stringWithFormat:@"%zd",imageH]; drawingposModel.IsDel = @"0"; self.examineAddModel.viewPointModel = nil; self.examineAddModel.modelsModel = self.modelsModel; self.examineAddModel.drawingsInfoModel = self.drawingsInfoModel; self.examineAddModel.drawingposModel = drawingposModel; [PBNoteCenter postNotificationName:PBNoteCenterUpdatePositioning object:nil]; [self.navigationController popToRootViewControllerAnimated:YES]; } - (void)setupUI { self.scrollView = [[UIScrollView alloc] init]; self.scrollView.delegate = self; [self.view addSubview:self.scrollView]; [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.bottom.left.right.equalTo(self.view); }]; self.imageV = [[UIImageView alloc] init]; self.imageV.contentMode = UIViewContentModeScaleToFill; [self.scrollView addSubview:self.imageV]; [self.imageV mas_makeConstraints:^(MASConstraintMaker *make) { make.top.bottom.left.right.equalTo(self.scrollView); }]; [self.imageV addSubview:self.redView]; [self.view addSubview:self.positionImageV]; self.redView.hidden = YES; self.positionImageV.hidden = YES; } - (void)loadDrawingsInfo { // [YJProgressHUD showCustomAnimation:@"" inview:self.view]; [YJProgressHUD showProgress:@"" inView:self.view]; [[PBNetworkTools sharedTools] RequestGetFIleWithProjectID:_modelsModel.ProjectID andModelID:_modelsModel.ID andVersionNO:@"" andFileType:@"PlanView" andFileName:_drawingsModel.ID andCallBack:^(NSURLSessionDataTask *task, id response, NSError *error) { if (error) { NSLog(@"%@",error); [YJProgressHUD showMessage:@"加载图纸失败" inView:self.view]; return; } [YJProgressHUD hide]; NSString *str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; self.drawingsInfoModel = [PBDrawingsInfoModel yy_modelWithJSON:str]; self.image = [NSString imageDecoding:self.drawingsInfoModel.imagebase64]; [self setScrollView]; }]; } - (void)setScrollView { self.imageV.image = self.image; self.scrollView.contentSize = self.image.size; NSInteger imageW = CGImageGetWidth(self.image.CGImage); NSInteger width = self.view.bounds.size.width; CGFloat scale = (CGFloat)width / (CGFloat)imageW; self.scrollView.maximumZoomScale = 2; self.scrollView.minimumZoomScale = scale; [self.scrollView setZoomScale:scale animated:NO]; self.redView.frame = CGRectMake(500, 800, 1, 1); CGPoint point = [self.redView convertPoint:CGPointMake(0, 0) toView:self.view]; CGRect frame = CGRectMake(point.x - (positionImageVW / 2), point.y - positionImageVH, positionImageVW, positionImageVH); self.positionImageV.frame = frame; self.redView.hidden = NO; self.positionImageV.hidden = NO; } - (void)setDrawingsModel:(PBDrawingsModel *)drawingsModel { _drawingsModel = drawingsModel; self.title = drawingsModel.name; [self loadDrawingsInfo]; } - (void)setModelsModel:(PBModelsModel *)modelsModel { _modelsModel = modelsModel; } #pragma mark - UIScrollViewDelegate - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return self.imageV; } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { [self changegreenView]; } - (UIView *)redView { if (_redView == nil) { _redView = [[UIView alloc] init]; _redView.backgroundColor = [UIColor redColor]; } return _redView; } - (UIImageView *)positionImageV { if (_positionImageV == nil) { _positionImageV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"location"]]; self.positionImageV.userInteractionEnabled = YES; UILongPressGestureRecognizer *longRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longRecognizerAciont:)]; longRecognizer.minimumPressDuration = 0.2; [self.positionImageV addGestureRecognizer:longRecognizer]; } return _positionImageV; } - (void)longRecognizerAciont:(UILongPressGestureRecognizer *)longRecognizer { self.navigationItem.rightBarButtonItem.enabled = YES; switch (longRecognizer.state) { case UIGestureRecognizerStateBegan: NSLog(@"长按开始了"); self.scrollView.scrollEnabled = NO; break; case UIGestureRecognizerStateChanged: NSLog(@"长按在走动~~~~~"); CGPoint redViewpoint = [longRecognizer locationInView:self.imageV]; NSLog(@"图纸位置=================%@",NSStringFromCGPoint(redViewpoint)); self.redView.frame = CGRectMake(redViewpoint.x, redViewpoint.y, 1, 1); [self changegreenView]; break; case UIGestureRecognizerStateEnded: NSLog(@"长按结束"); self.scrollView.scrollEnabled = YES; break; default: break; } } - (void)changegreenView { CGPoint point = [self.redView convertPoint:CGPointMake(0, 0) toView:self.view]; CGRect frame = CGRectMake(point.x - (positionImageVW / 2), point.y - positionImageVH, positionImageVW, positionImageVH); self.positionImageV.frame = frame; NSLog(@"self.views位置-----------------------%@",NSStringFromCGPoint(point)); } - (void)setExamineAddModel:(PBExamineAddModel *)examineAddModel { _examineAddModel = examineAddModel; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end