CPDFHeaderFooterAddController.m 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  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. //_imageView = [[UIImageView alloc] initWithFrame:CGRectMake((393/2)-(self.size.width/6), 125, self.size.width/3, self.size.height/3)];
  33. _imageView = [[UIImageView alloc] init];
  34. _imageView.image = self.image;
  35. CALayer *layer = [_imageView layer];
  36. layer.borderColor = [[UIColor blackColor] CGColor];
  37. layer.borderWidth = 1.0f;
  38. [self.view addSubview:_imageView];
  39. _headerFooterview = [[CPDFHeaderFooterAddView alloc] init];
  40. [self.view addSubview:_headerFooterview];
  41. [_imageView mas_makeConstraints:^(MASConstraintMaker *make) {
  42. make.top.equalTo(self.view.mas_top).offset(125);
  43. make.left.equalTo(self.view.mas_left).offset((393/2)-(self.size.width/6));
  44. make.width.mas_equalTo(self.size.width/3);
  45. make.height.mas_equalTo(self.size.height/3);
  46. }];
  47. //add view
  48. [self.headerFooterview mas_makeConstraints:^(MASConstraintMaker *make) {
  49. make.top.equalTo(self.imageView.mas_bottom).offset(60);
  50. make.left.equalTo(self.view.mas_left);
  51. make.width.mas_equalTo(self.view.frame.size.width);
  52. make.height.mas_equalTo(self.view.frame.size.height);
  53. }];
  54. [_headerFooterview.localSegment addTarget:self action:@selector(changeLocation:) forControlEvents:UIControlEventValueChanged];
  55. [_headerFooterview.aligbmentSegment addTarget:self action:@selector(changeAligbment:) forControlEvents:UIControlEventValueChanged];
  56. [_headerFooterview.colorSlider addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged];
  57. [_headerFooterview.fontSizeText addTarget:self action:@selector(changeFontSize:) forControlEvents:UIControlEventEditingDidEnd];
  58. }
  59. - (void)cancelClick:(UIBarButtonItem *)btn {
  60. [self.navigationController popViewControllerAnimated:YES];
  61. }
  62. - (void)doneClick:(UIBarButtonItem *)btn {
  63. NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:self.modelData,@"model", nil];
  64. NSNotification *notification = [NSNotification notificationWithName:@"changeModel" object:nil userInfo:dict];
  65. [[NSNotificationCenter defaultCenter] postNotification:notification];
  66. [self.navigationController popViewControllerAnimated:YES];
  67. }
  68. - (void)changeFontSize:(UITextField *)text {
  69. float size = [text.text floatValue];
  70. _showLabel.font = [UIFont systemFontOfSize:size / 3];
  71. _modelData.fontSize = size;
  72. }
  73. //slider select color
  74. - (void)sliderChange:(UISlider *)slider {
  75. switch ((int)slider.value/10) {
  76. case 0:
  77. self.showLabel.textColor = [UIColor redColor];
  78. self.modelData.fontColor = [UIColor redColor];
  79. break;
  80. case 1:
  81. self.showLabel.textColor = [UIColor orangeColor];
  82. self.modelData.fontColor = [UIColor orangeColor];
  83. break;
  84. case 2:
  85. self.showLabel.textColor = [UIColor colorWithRed:239.0/255 green:140.0/255 blue:133.0/255 alpha:1];
  86. self.modelData.fontColor = [UIColor colorWithRed:239.0/255 green:140.0/255 blue:133.0/255 alpha:1];
  87. break;
  88. case 3:
  89. self.showLabel.textColor = [UIColor yellowColor];
  90. self.modelData.fontColor = [UIColor yellowColor];;
  91. break;
  92. case 4:
  93. self.showLabel.textColor = [UIColor greenColor];
  94. self.modelData.fontColor = [UIColor greenColor];
  95. break;
  96. case 5:
  97. self.showLabel.textColor = [UIColor blueColor];
  98. self.modelData.fontColor = [UIColor blueColor];
  99. break;
  100. case 6:
  101. self.showLabel.textColor = [UIColor purpleColor];
  102. self.modelData.fontColor = [UIColor purpleColor];
  103. break;
  104. case 7:
  105. self.showLabel.textColor = [UIColor colorWithRed:235.0/255 green:61.0/255 blue:133.0/255 alpha:1];
  106. self.modelData.fontColor = [UIColor colorWithRed:235.0/255 green:61.0/255 blue:133.0/255 alpha:1];
  107. break;
  108. case 8:
  109. self.showLabel.textColor = [UIColor blackColor];
  110. self.modelData.fontColor = [UIColor blackColor];
  111. break;
  112. case 9:
  113. self.showLabel.textColor = [UIColor whiteColor];
  114. self.modelData.fontColor = [UIColor whiteColor];
  115. break;
  116. default:
  117. break;
  118. }
  119. }
  120. //select headerfooter
  121. - (void)changeLocation:(UISegmentedControl *)sender {
  122. if (sender.selectedSegmentIndex == 0) {
  123. _position.location = kHeader;
  124. } else {
  125. _position.location = kFooter;
  126. }
  127. [self showPages];
  128. }
  129. //select aligment
  130. - (void)changeAligbment:(UISegmentedControl *)sender {
  131. if (sender.selectedSegmentIndex == 0) {
  132. _position.aligment = kLeft;
  133. } else if (sender.selectedSegmentIndex == 1) {
  134. _position.aligment = kCenter;
  135. } else {
  136. _position.aligment = kRinght;
  137. }
  138. [self showPages];
  139. }
  140. //show headerfooter and aligment
  141. - (void)showPages {
  142. if (_showLabel == nil) {
  143. _showLabel = [[UILabel alloc] init];
  144. }
  145. [_showLabel setText:@"1"];
  146. [self.imageView addSubview:self.showLabel];
  147. switch (self.position.location) {
  148. case kHeader:
  149. if (self.position.aligment == kLeft) {
  150. [_showLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  151. make.top.equalTo(_imageView.mas_top).offset(0.5);
  152. make.left.equalTo(self.imageView.mas_left).offset(0.5);
  153. make.height.mas_equalTo(10);
  154. make.width.mas_equalTo(10);
  155. }];
  156. self.modelData.fontPosition = 0;
  157. } else if (self.position.aligment == kCenter) {
  158. [_showLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  159. make.top.equalTo(_imageView.mas_top).offset(0.5);
  160. make.left.equalTo(self.imageView.mas_left).offset(self.size.width / 6);
  161. make.height.mas_equalTo(10);
  162. make.width.mas_equalTo(10);
  163. }];
  164. self.modelData.fontPosition = 1;
  165. } else {
  166. [_showLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  167. make.top.equalTo(self.imageView.mas_top).offset(0.5);
  168. make.left.equalTo(self.imageView.mas_left).offset(self.size.width / 3 - 12);
  169. make.height.mas_equalTo(10);
  170. make.width.mas_equalTo(10);
  171. }];
  172. self.modelData.fontPosition = 2;
  173. }
  174. break;
  175. case kFooter:
  176. if (self.position.aligment == kLeft) {
  177. [_showLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  178. make.top.equalTo(self.imageView.mas_top).offset(self.size.height / 3 - 12);
  179. make.left.equalTo(self.imageView.mas_left).offset(0.5);
  180. make.height.mas_equalTo(10);
  181. make.width.mas_equalTo(10);
  182. }];
  183. self.modelData.fontPosition = 3;
  184. } else if (self.position.aligment == kCenter) {
  185. [_showLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  186. make.top.equalTo(self.imageView.mas_top).offset(self.size.height / 3 - 12);
  187. make.left.equalTo(self.imageView.mas_left).offset(self.size.width/6);
  188. make.height.mas_equalTo(10);
  189. make.width.mas_equalTo(10);
  190. }];
  191. self.modelData.fontPosition = 4;
  192. } else {
  193. [_showLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  194. make.top.equalTo(self.imageView.mas_top).offset(self.size.height / 3 - 12);
  195. make.left.equalTo(self.imageView.mas_left).offset(self.size.width / 3 - 12);
  196. make.height.mas_equalTo(10);
  197. make.width.mas_equalTo(10);
  198. }];
  199. self.modelData.fontPosition = 5;
  200. }
  201. break;
  202. default:
  203. break;
  204. }
  205. }
  206. - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
  207. if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight) {
  208. [_imageView mas_remakeConstraints:^(MASConstraintMaker *make) {
  209. make.top.equalTo(self.view.mas_top).offset((393/2)-(self.size.height/6));
  210. make.left.equalTo(self.view.mas_left).offset((393/2)-(self.size.width/6));
  211. make.width.mas_equalTo(self.size.width/3);
  212. make.height.mas_equalTo(self.size.height/3);
  213. }];
  214. //add view
  215. [self.headerFooterview mas_remakeConstraints:^(MASConstraintMaker *make) {
  216. make.top.equalTo(self.view.mas_top).offset(15);
  217. make.left.equalTo(self.view.mas_left).offset(self.view.frame.size.width / 2 + 200);
  218. make.width.mas_equalTo(393);
  219. make.height.mas_equalTo(self.view.frame.size.height - 20);
  220. }];
  221. } else if ([UIDevice currentDevice].orientation == UIDeviceOrientationPortrait) {
  222. [_imageView mas_remakeConstraints:^(MASConstraintMaker *make) {
  223. make.top.equalTo(self.view.mas_top).offset(125);
  224. make.left.equalTo(self.view.mas_left).offset((393 / 2)-(self.size.width / 6));
  225. make.width.mas_equalTo(self.size.width / 3);
  226. make.height.mas_equalTo(self.size.height / 3);
  227. }];
  228. //add view
  229. [self.headerFooterview mas_remakeConstraints:^(MASConstraintMaker *make) {
  230. make.top.equalTo(self.imageView.mas_bottom).offset(60);
  231. make.left.equalTo(self.view.mas_left);
  232. make.width.mas_equalTo(self.view.frame.size.width);
  233. make.height.mas_equalTo(self.view.frame.size.height);
  234. }];
  235. }
  236. }
  237. @end