CPDFHeaderFooterAddController.m 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. //
  2. // HeaderFooterAlertViewController.m
  3. // PDFViewer
  4. //
  5. // Created by kdanmobile_2 on 2022/11/16.
  6. //
  7. #import "CPDFHeaderFooterAddController.h"
  8. @interface CPDFHeaderFooterAddController ()
  9. @end
  10. @implementation CPDFHeaderFooterAddController
  11. - (id)initWithIamge:(UIImage *)image WithSize:(CGSize)size WithDocument:(CPDFDocument *)docment WithView:(CPDFView *) pdfView {
  12. self = [super init];
  13. if (self) {
  14. _image = image;
  15. _size = size;
  16. _document = docment;
  17. _pdfView = pdfView;
  18. }
  19. return self;
  20. }
  21. - (void)viewDidLoad {
  22. [super viewDidLoad];
  23. // Do any additional setup after loading the view.
  24. //setting navigation
  25. self.navigationItem.title = @"Add Page NUmber";
  26. self.navigationController.toolbarHidden = YES;
  27. self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneClick:)];
  28. self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelClick:)];
  29. //initialize model
  30. _modelData = [[CPDFModelData alloc] init];
  31. //add page image
  32. UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake((393/2)-(self.size.width/6), 125, self.size.width/3, self.size.height/3)];
  33. imageView.image = self.image;
  34. CALayer *layer = [imageView layer];
  35. layer.borderColor = [[UIColor blackColor] CGColor];
  36. layer.borderWidth = 1.0f;
  37. [self.view addSubview:imageView];
  38. //add view
  39. _headerFooterview = [[CPDFHeaderFooterAddView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height/2, self.view.frame.size.width, self.view.frame.size.height)];
  40. [self.view addSubview:_headerFooterview];
  41. [_headerFooterview.localSegment addTarget:self action:@selector(changeLocation:) forControlEvents:UIControlEventValueChanged];
  42. [_headerFooterview.aligbmentSegment addTarget:self action:@selector(changeAligbment:) forControlEvents:UIControlEventValueChanged];
  43. [_headerFooterview.colorSlider addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged];
  44. }
  45. - (void)cancelClick:(UIBarButtonItem *)btn {
  46. [self.navigationController popViewControllerAnimated:YES];
  47. }
  48. - (void)doneClick:(UIBarButtonItem *)btn {
  49. /*self.headerFooter = [self.document headerFooter];
  50. [self.headerFooter clear];
  51. self.headerFooter.pageString = @"2";
  52. [self.headerFooter setText:@"1" atIndex:1];
  53. [self.headerFooter setTextColor:self.modelData.fontColor atIndex:self.modelData.fontPosition];
  54. [self.headerFooter update];*/
  55. NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:self.modelData,@"model", nil];
  56. NSNotification *notification = [NSNotification notificationWithName:@"changeModel" object:nil userInfo:dict];
  57. [[NSNotificationCenter defaultCenter] postNotification:notification];
  58. [self.navigationController popViewControllerAnimated:YES];
  59. //[self.navigationController popViewControllerAnimated:YES];
  60. }
  61. //slider select color
  62. - (void)sliderChange:(UISlider *)slider {
  63. switch ((int)slider.value/10) {
  64. case 0:
  65. self.showLabel.textColor = [UIColor redColor];
  66. self.modelData.fontColor = [UIColor redColor];
  67. break;
  68. case 1:
  69. self.showLabel.textColor = [UIColor orangeColor];
  70. self.modelData.fontColor = [UIColor orangeColor];
  71. break;
  72. case 2:
  73. self.showLabel.textColor = [UIColor colorWithRed:239.0/255 green:140.0/255 blue:133.0/255 alpha:1];
  74. self.modelData.fontColor = [UIColor colorWithRed:239.0/255 green:140.0/255 blue:133.0/255 alpha:1];
  75. break;
  76. case 3:
  77. self.showLabel.textColor = [UIColor yellowColor];
  78. self.modelData.fontColor = [UIColor yellowColor];;
  79. break;
  80. case 4:
  81. self.showLabel.textColor = [UIColor greenColor];
  82. self.modelData.fontColor = [UIColor greenColor];
  83. break;
  84. case 5:
  85. self.showLabel.textColor = [UIColor blueColor];
  86. self.modelData.fontColor = [UIColor blueColor];
  87. break;
  88. case 6:
  89. self.showLabel.textColor = [UIColor purpleColor];
  90. self.modelData.fontColor = [UIColor purpleColor];
  91. break;
  92. case 7:
  93. self.showLabel.textColor = [UIColor colorWithRed:235.0/255 green:61.0/255 blue:133.0/255 alpha:1];
  94. self.modelData.fontColor = [UIColor colorWithRed:235.0/255 green:61.0/255 blue:133.0/255 alpha:1];
  95. break;
  96. case 8:
  97. self.showLabel.textColor = [UIColor blackColor];
  98. self.modelData.fontColor = [UIColor blackColor];
  99. break;
  100. default:
  101. break;
  102. }
  103. }
  104. //select headerfooter
  105. - (void)changeLocation:(UISegmentedControl *)sender {
  106. if (sender.selectedSegmentIndex == 0) {
  107. _position.location = kHeader;
  108. } else {
  109. _position.location = kFooter;
  110. }
  111. [self showPages];
  112. }
  113. //select aligment
  114. - (void)changeAligbment:(UISegmentedControl *)sender {
  115. if (sender.selectedSegmentIndex == 0) {
  116. _position.aligment = kLeft;
  117. } else if (sender.selectedSegmentIndex == 1) {
  118. _position.aligment = kCenter;
  119. } else {
  120. _position.aligment = kRinght;
  121. }
  122. [self showPages];
  123. }
  124. //show headerfooter and aligment
  125. - (void)showPages {
  126. if (_showLabel == nil) {
  127. _showLabel = [[UILabel alloc] init];
  128. }
  129. switch (self.position.location) {
  130. case kHeader:
  131. NSLog(@"header");
  132. switch (self.position.aligment) {
  133. case kLeft:
  134. _showLabel.frame = CGRectMake((393/2)-(self.size.width/6)+2, 177, 5, 5);
  135. self.modelData.fontPosition = 0;
  136. break;
  137. case kCenter:
  138. _showLabel.frame = CGRectMake(393/2, 177, 5, 5);
  139. self.modelData.fontPosition = 1;
  140. break;
  141. case kRinght:
  142. _showLabel.frame = CGRectMake((393/2)+(self.size.width/6)-7, 177, 5, 5);
  143. self.modelData.fontPosition = 2;
  144. break;
  145. default:
  146. break;
  147. }
  148. break;
  149. case kFooter:
  150. NSLog(@"Footer");
  151. switch (self.position.aligment) {
  152. case kLeft:
  153. _showLabel.frame = CGRectMake((393/2)-(self.size.width/6)+2, 170+self.size.height/3, 5, 5);
  154. self.modelData.fontPosition = 3;
  155. break;
  156. case kCenter:
  157. _showLabel.frame = CGRectMake(393/2, 170+self.size.height/3, 5, 5);
  158. self.modelData.fontPosition = 4;
  159. break;
  160. case kRinght:
  161. _showLabel.frame = CGRectMake((393/2)+(self.size.width/6)-7, 170+self.size.height/3, 5, 5);
  162. self.modelData.fontPosition = 5;
  163. break;
  164. default:
  165. break;
  166. }
  167. break;
  168. default:
  169. break;
  170. }
  171. [_showLabel setText:@"1"];
  172. [self.view addSubview:_showLabel];
  173. }
  174. @end