// // CPDFAddViewController.m // PDFViewer // // Created by kdanmobile_2 on 2022/12/7. // #import "CPDFAddViewController.h" #import "CPDFAddViewControllerHeader.h" #import "CPDFAddView.h" @interface CPDFAddViewController () @property (nonatomic,strong) CPDFAddView *buttonView; @end @implementation CPDFAddViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self initNavigation]; // Initialize header view [self initHeadView]; // Initialize model [self initModel]; // Add view [self initBttonmView]; // UI event [self initBasicEvent]; } #pragma mark - Initializers - (void)initNavigation { self.navigationItem.title = @"Add Page Number"; self.navigationController.toolbarHidden = YES; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneClick:)]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelClick:)]; } - (id)initWithImage:(UIImage *)image { self = [super init]; if (self) { _image = image; } return self; } - (void)initModel { _modelData = [[CPDFHeaderFooterModel alloc] init]; _modelData.fontSize = 18.0; _modelData.fontSelcet = 0; _modelData.fontPosition = 0; _modelData.pageStart = @"1"; } - (void)initHeadView { _headView = [[CPDFHeadView alloc] init]; [_headView setImage:self.image]; [self.view addSubview:_headView]; if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight) { [self.headView mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top).offset((393 / 2) - (self.image.size.height / 18)); make.left.equalTo(self.view.mas_left).offset((393 / 2) - (self.image.size.width / 18)); make.width.mas_equalTo(self.image.size.width / 9); make.height.mas_equalTo(self.image.size.height / 9); }]; } else { [self.headView mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top).offset(125); make.left.equalTo(self.view.mas_left).offset((393 / 2) - (self.image.size.width / 18)); make.width.mas_equalTo(self.image.size.width / 9); make.height.mas_equalTo(self.image.size.height / 9); }]; } } - (void)initBttonmView { _buttonView = [[CPDFAddView alloc] init]; [self.view addSubview:_buttonView]; [self.buttonView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.headView.mas_bottom).offset(60); make.left.equalTo(self.view.mas_left); make.width.mas_equalTo(self.view.frame.size.width); make.height.mas_equalTo(self.view.frame.size.height); }]; self.buttonView.localSegment.selectedSegmentIndex = 0; self.buttonView.aligbmentSegment.selectedSegmentIndex = 1; } - (void)initBasicEvent { [_buttonView.localSegment addTarget:self action:@selector(changeLocation:) forControlEvents:UIControlEventValueChanged]; [_buttonView.aligbmentSegment addTarget:self action:@selector(changeAligbment:) forControlEvents:UIControlEventValueChanged]; [_buttonView.colorSlider addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged]; } #pragma mark - Actions // Candel button enable - (void)cancelClick:(UIBarButtonItem *)btn { [self.navigationController popViewControllerAnimated:YES]; } - (void)doneClick:(UIBarButtonItem *)btn { } #pragma mark - UI Functions // Get page start for headerfooter's Model - (void)changePageStart:(UITextField *)text { int start = [text.text intValue]; self.modelData.pageStart = [NSString stringWithFormat:@"%d",start]; [self showPages]; } // Get headerfoote's font size for headerfooter's Model - (void)changeFontSize:(UITextField *)text { float size = [text.text floatValue]; _headView.showLabel.font = [UIFont systemFontOfSize:size / 3]; _modelData.fontSize = size; [self showPages]; } // Slider select color - (void)sliderChange:(UISlider *)slider { switch ((int)slider.value / 10) { case 0: self.headView.showLabel.textColor = [UIColor redColor]; self.modelData.fontColor = [UIColor redColor]; break; case 1: self.headView.showLabel.textColor = [UIColor orangeColor]; self.modelData.fontColor = [UIColor orangeColor]; break; case 2: self.headView.showLabel.textColor = [UIColor colorWithRed:239.0 / 255 green:140.0 / 255 blue:133.0 / 255 alpha:1]; self.modelData.fontColor = [UIColor colorWithRed:239.0 / 255 green:140.0 / 255 blue:133.0 / 255 alpha:1]; break; case 3: self.headView.showLabel.textColor = [UIColor yellowColor]; self.modelData.fontColor = [UIColor yellowColor];; break; case 4: self.headView.showLabel.textColor = [UIColor greenColor]; self.modelData.fontColor = [UIColor greenColor]; break; case 5: self.headView.showLabel.textColor = [UIColor blueColor]; self.modelData.fontColor = [UIColor blueColor]; break; case 6: self.headView.showLabel.textColor = [UIColor purpleColor]; self.modelData.fontColor = [UIColor purpleColor]; break; case 7: self.headView.showLabel.textColor = [UIColor colorWithRed:235.0 / 255 green:61.0 / 255 blue:133.0 / 255 alpha:1]; self.modelData.fontColor = [UIColor colorWithRed:235.0 / 255 green:61.0 / 255 blue:133.0 / 255 alpha:1]; break; case 8: self.headView.showLabel.textColor = [UIColor blackColor]; self.modelData.fontColor = [UIColor blackColor]; break; case 9: self.headView.showLabel.textColor = [UIColor whiteColor]; self.modelData.fontColor = [UIColor whiteColor]; break; default: break; } } // Select headerfooter - (void)changeLocation:(UISegmentedControl *)sender { if (sender.selectedSegmentIndex == 0) { _position.location = kHeader; } else { _position.location = kFooter; } [self showPages]; } // Select aligment - (void)changeAligbment:(UISegmentedControl *)sender { if (sender.selectedSegmentIndex == 0) { _position.aligment = kLeft; } else if (sender.selectedSegmentIndex == 1) { _position.aligment = kCenter; } else { _position.aligment = kRinght; } [self showPages]; } // Show headerfooter and aligment - (void)showPages { if (_headView.showLabel == nil) { _headView.showLabel = [[UILabel alloc] init]; } switch (self.position.location) { case kHeader: if (self.position.aligment == kLeft) { [_headView.showLabel mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.headView.imageView.mas_top).offset(0.5); make.left.equalTo(self.headView.imageView.mas_left).offset(0.5); make.height.mas_equalTo(10); make.width.mas_equalTo(20); }]; self.modelData.fontPosition = 0; } else if (self.position.aligment == kCenter) { [_headView.showLabel mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.headView.imageView.mas_top).offset(0.5); make.left.equalTo(self.headView.imageView.mas_left).offset(self.image.size.width / 18); make.height.mas_equalTo(10); make.width.mas_equalTo(20); }]; self.modelData.fontPosition = 1; } else { [_headView.showLabel mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.headView.imageView.mas_top).offset(0.5); make.left.equalTo(self.headView.imageView.mas_left).offset(self.image.size.width / 9 - 12); make.height.mas_equalTo(10); make.width.mas_equalTo(20); }]; self.modelData.fontPosition = 2; } break; case kFooter: if (self.position.aligment == kLeft) { [_headView.showLabel mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.headView.imageView.mas_top).offset(self.image.size.height / 9 - 12); make.left.equalTo(self.headView.imageView.mas_left).offset(0.5); make.height.mas_equalTo(10); make.width.mas_equalTo(20); }]; self.modelData.fontPosition = 3; } else if (self.position.aligment == kCenter) { [_headView.showLabel mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.headView.imageView.mas_top).offset(self.image.size.height / 9 - 12); make.left.equalTo(self.headView.imageView.mas_left).offset(self.image.size.width / 18); make.height.mas_equalTo(10); make.width.mas_equalTo(20); }]; self.modelData.fontPosition = 4; } else { [_headView.showLabel mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.headView.imageView.mas_top).offset(self.image.size.height / 9 - 12); make.left.equalTo(self.headView.imageView.mas_left).offset(self.image.size.width / 9 - 12); make.height.mas_equalTo(10); make.width.mas_equalTo(20); }]; self.modelData.fontPosition = 5; } break; default: break; } } @end