//
|
// PBIssueDrawingsShowController.m
|
// IphoneBIMe
|
//
|
// Created by zjf on 2019/1/11.
|
// Copyright © 2019 ProBIM. All rights reserved.
|
//
|
|
#import "PBIssueDrawingsShowController.h"
|
#import "PBDrawingsModel.h"
|
#import "PBModelsModel.h"
|
#import "PBDrawingsInfoModel.h"
|
#import "PBIssueAddModel.h"
|
#import "PBDrawingposModel.h"
|
#define positionImageVW 30
|
#define positionImageVH 30
|
@interface PBIssueDrawingsShowController ()<UIScrollViewDelegate>
|
@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 PBIssueDrawingsShowController
|
|
- (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.issueAddModel.modelsModel = self.modelsModel;
|
self.issueAddModel.drawingsInfoModel = self.drawingsInfoModel;
|
self.issueAddModel.drawingposModel = drawingposModel;
|
[PBNoteCenter postNotificationName:PBNoteCenterIssueUpdatePositioning object:self.issueAddModel];
|
[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)setIssueAddModel:(PBIssueAddModel *)issueAddModel {
|
_issueAddModel = issueAddModel;
|
}
|
|
@end
|