// // CPDFAddViewController.m // PDFViewer // // Created by kdanmobile_2 on 2022/12/15. // #import "CPDFAddViewController.h" #import #import "CPDFViewController.h" #import "CPDFTextView.h" #import "CPDFTextPreview.h" #import "CPDFImageView.h" #import "CPDFImagePreview.h" #import "CPDFDataModel.h" #import "Masonry.h" @interface CPDFAddViewController () @property (nonatomic,assign) CGSize imageSize; @property (nonatomic,strong) CPDFView *pdfView; @property (nonatomic,strong) UIImage *image; @property (nonatomic,strong) CPDFDataModel *dataModel; @end @implementation CPDFAddViewController - (instancetype)initWithImage:(UIImage *)image { self = [super init]; if (self) { _image = image; _imageSize = image.size; } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(onClickedDoneBtn)]; self.navigationItem.rightBarButtonItem = doneBtn; [self createView]; [self addConstraint]; } - (void)createView { NSArray *segmentArray = @[@"Text",@"Image"]; _segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentArray]; [_segmentedControl addTarget:self action:@selector(segmentedAction:) forControlEvents:UIControlEventValueChanged]; _segmentedControl.selectedSegmentIndex = 0; [_segmentedControl setBackgroundColor:[UIColor whiteColor]]; _textViewController = [[CPDFTextViewController alloc] init]; _imageViewController = [[CPDFImageViewController alloc] init]; [self addChildViewController:_textViewController]; [self addChildViewController:_imageViewController]; [self.view addSubview:self.segmentedControl]; [self.view addSubview:_textViewController.view]; [self.view addSubview:_imageViewController.view]; _textViewController.textPreview.documentView.image = self.image; _imageViewController.imagePreview.documentView.image = self.image; _imageViewController.view.hidden = YES; } - (void)addConstraint { if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight || [UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft || [UIDevice currentDevice].orientation == UIDeviceOrientationPortraitUpsideDown) { [_segmentedControl mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top).offset(43.6); make.width.equalTo(self.view.mas_width); make.height.equalTo(@(self.view.bounds.size.height / 15)); }]; [_textViewController.view mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_segmentedControl.mas_bottom).offset(0); make.width.equalTo(_segmentedControl.mas_width); make.bottom.equalTo(self.view).offset(-34); }]; [_imageViewController.view mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_segmentedControl.mas_bottom).offset(0); make.width.equalTo(_segmentedControl.mas_width); make.bottom.equalTo(self.view).offset(-34); }]; [_textViewController.textView mas_remakeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(self.view.mas_right).offset(-38); // make.left.equalTo(_textViewController.textPreview.mas_right).offset(0); make.height.equalTo(@205); make.width.equalTo(@393); make.bottom.equalTo(self.view.mas_bottom).offset(-74); }]; [_textViewController.textPreview mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.segmentedControl.mas_top).offset(10); make.right.equalTo(_textViewController.textView.mas_left).offset(-5); make.left.equalTo(self.view.mas_left).offset(0); make.bottom.equalTo(self.view.mas_bottom).offset(0); }]; [_imageViewController.imageView mas_remakeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(self.view.mas_right).offset(-38); // make.left.equalTo(_imageViewController.imagePreview.mas_right).offset(0); make.height.equalTo(@205); make.width.equalTo(@393); make.bottom.equalTo(self.view.mas_bottom).offset(-74); }]; [_imageViewController.imagePreview mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top).offset(10); make.right.equalTo(_imageViewController.imageView.mas_left).offset(-5); make.left.equalTo(self.view.mas_left).offset(0); make.bottom.equalTo(self.view.mas_bottom).offset(0); }]; [_textViewController.textPreview.documentView mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_textViewController.textPreview.mas_centerX); make.centerY.equalTo(_textViewController.textPreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 10)); make.height.equalTo(@(_imageSize.height / 10)); }]; [_imageViewController.imagePreview.documentView mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_imageViewController.imagePreview.mas_centerX); make.centerY.equalTo(_imageViewController.imagePreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 10)); make.height.equalTo(@(_imageSize.height / 10)); }]; } else { [_segmentedControl mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top).offset(83.6); make.width.equalTo(self.view.mas_width); make.height.equalTo(@(self.view.bounds.size.height / 20)); }]; [_textViewController.view mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_segmentedControl.mas_bottom).offset(0); make.width.equalTo(_segmentedControl.mas_width); make.bottom.equalTo(self.view).offset(-34); }]; [_imageViewController.view mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_segmentedControl.mas_bottom).offset(0); make.width.equalTo(_segmentedControl.mas_width); make.bottom.equalTo(self.view).offset(-34); }]; [_textViewController.textPreview.documentView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_textViewController.textPreview.mas_centerX); make.centerY.equalTo(_textViewController.textPreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 8)); make.height.equalTo(@(_imageSize.height / 8)); }]; [_imageViewController.imagePreview.documentView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_imageViewController.imagePreview.mas_centerX); make.centerY.equalTo(_imageViewController.imagePreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 8)); make.height.equalTo(@(_imageSize.height / 8)); }]; } } #pragma mark - Actons - (void)onClickedDoneBtn { self.navigationItem.rightBarButtonItem = nil; if (_segmentedControl.selectedSegmentIndex == 0) { _dataModel = self.textViewController.dataModel; [self.delegate changeTextModel:self.dataModel]; } else { _dataModel = self.imageViewController.dataModel; [self.delegate changeImageModel:self.dataModel]; } [self.navigationController popViewControllerAnimated:YES]; } - (void)segmentedAction:(UISegmentedControl *)sender { switch(sender.selectedSegmentIndex) { case 0: _textViewController.view.hidden = NO; _imageViewController.view.hidden = YES; break; case 1: _textViewController.view.hidden = YES; _imageViewController.view.hidden = NO; break; default: break; } } #pragma mark - Orientation - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator { [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight) { [_segmentedControl mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top).offset(43.6); make.width.equalTo(self.view.mas_width); make.height.equalTo(@(self.view.bounds.size.height / 24)); }]; if (_imageSize.width > _imageSize.height) { [_textViewController.textPreview.documentView mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_textViewController.textPreview.mas_centerX); make.centerY.equalTo(_textViewController.textPreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 8)); make.height.equalTo(@(_imageSize.height / 8)); }]; [_imageViewController.imagePreview.documentView mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_imageViewController.imagePreview.mas_centerX); make.centerY.equalTo(_imageViewController.imagePreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 8)); make.height.equalTo(@(_imageSize.height / 8)); }]; } else { [_textViewController.textPreview.documentView mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_textViewController.textPreview.mas_centerX); make.centerY.equalTo(_textViewController.textPreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 10)); make.height.equalTo(@(_imageSize.height / 10)); }]; [_imageViewController.imagePreview.documentView mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_imageViewController.imagePreview.mas_centerX); make.centerY.equalTo(_imageViewController.imagePreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 10)); make.height.equalTo(@(_imageSize.height / 10)); }]; } } else if ([UIDevice currentDevice].orientation == UIDeviceOrientationPortrait) { [_segmentedControl mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top).offset(83.6); make.width.equalTo(self.view.mas_width); make.height.equalTo(@(852 / 20)); }]; [_textViewController.textPreview.documentView mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_textViewController.textPreview.mas_centerX); make.centerY.equalTo(_textViewController.textPreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 8)); make.height.equalTo(@(_imageSize.height / 8)); }]; [_imageViewController.imagePreview.documentView mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(_imageViewController.imagePreview.mas_centerX); make.centerY.equalTo(_imageViewController.imagePreview.mas_centerY); make.width.equalTo(@(_imageSize.width / 8)); make.height.equalTo(@(_imageSize.height / 8)); }]; } } @end