CPDFHeaderFooterAddView.m 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. //
  2. // HeaderFooterAddView.m
  3. // PDFViewer
  4. //
  5. // Created by kdanmobile_2 on 2022/11/16.
  6. //
  7. #import "CPDFHeaderFooterAddView.h"
  8. #import "Masonry.h"
  9. @implementation CPDFHeaderFooterAddView
  10. - (instancetype)initWithFrame:(CGRect)frame {
  11. self = [super initWithFrame:frame];
  12. CGFloat offsetx = 3.5;
  13. if (self) {
  14. //Page number location
  15. _localLabel = [[UILabel alloc] init];
  16. [_localLabel setText:@"Page number position"];
  17. _localLabel.font = [UIFont boldSystemFontOfSize:12];
  18. NSArray *arraySegmmentL = [NSArray arrayWithObjects:@"Header",@"Footer", nil];
  19. _localSegment = [[UISegmentedControl alloc] initWithItems:arraySegmmentL];
  20. [self addSubview:_localLabel];
  21. [self addSubview:_localSegment];
  22. [_localLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  23. make.top.equalTo(self.mas_top).offset(offsetx);
  24. make.left.equalTo(self.mas_left).offset(offsetx);
  25. make.width.mas_equalTo(130);
  26. make.height.mas_equalTo(22);
  27. }];
  28. [_localSegment mas_makeConstraints:^(MASConstraintMaker *make) {
  29. make.top.equalTo(_localLabel.mas_bottom).offset(offsetx);
  30. make.left.equalTo(self.mas_left).offset(4 * offsetx);
  31. make.width.mas_equalTo(364);
  32. make.height.mas_equalTo(44);
  33. }];
  34. //alignment
  35. _alignmentLabel = [[UILabel alloc] init];
  36. [_alignmentLabel setText:@"alignment"];
  37. _alignmentLabel.font = [UIFont boldSystemFontOfSize:12];
  38. NSArray *arraySegmmentA = [NSArray arrayWithObjects:@"Left",@"Center",@"Right", nil];
  39. _aligbmentSegment = [[UISegmentedControl alloc] initWithItems:arraySegmmentA];
  40. [self addSubview:_alignmentLabel];
  41. [self addSubview:_aligbmentSegment];
  42. [_alignmentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  43. make.top.equalTo(_localSegment.mas_bottom).offset(offsetx);
  44. make.left.equalTo(self.mas_left).offset(offsetx);
  45. make.width.mas_equalTo(100);
  46. make.height.mas_equalTo(22);
  47. }];
  48. [_aligbmentSegment mas_makeConstraints:^(MASConstraintMaker *make) {
  49. make.top.equalTo(_alignmentLabel.mas_bottom).offset(offsetx);
  50. make.left.equalTo(self.mas_left).offset(4 * offsetx);
  51. make.width.mas_equalTo(364);
  52. make.height.mas_equalTo(44);
  53. }];
  54. //font color
  55. _colorLabel = [[UILabel alloc] init];
  56. [_colorLabel setText:@"Font Color"];
  57. _colorLabel.font = [UIFont boldSystemFontOfSize:12];
  58. _colerImage = [[UIImageView alloc] init];
  59. CALayer *layer = [_colerImage layer];
  60. layer.borderColor = [[UIColor blackColor] CGColor];
  61. layer.borderWidth = 0.5f;
  62. _colerImage.image = [UIImage imageNamed:@"text_color_bar"];
  63. _colorSlider = [[UISlider alloc] init];
  64. _colorSlider.minimumValue = 0;
  65. _colorSlider.maximumValue = 100;
  66. _colorSlider.value = 5;
  67. [self addSubview:_colorLabel];
  68. [self addSubview:_colorSlider];
  69. [self addSubview:_colerImage];
  70. [_colorLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  71. make.top.equalTo(_aligbmentSegment.mas_bottom).offset(offsetx);
  72. make.left.equalTo(self.mas_left).offset(offsetx);
  73. make.width.mas_equalTo(100);
  74. make.height.mas_equalTo(22);
  75. }];
  76. [_colerImage mas_makeConstraints:^(MASConstraintMaker *make) {
  77. make.top.equalTo(_colorLabel.mas_bottom).offset(offsetx);
  78. make.left.equalTo(self.mas_left).offset(4 * offsetx);
  79. make.width.mas_equalTo(364);
  80. make.height.mas_equalTo(44);
  81. }];
  82. [_colorSlider mas_makeConstraints:^(MASConstraintMaker *make) {
  83. make.top.equalTo(_colerImage.mas_bottom).offset(offsetx);
  84. make.left.equalTo(self.mas_left).offset(4 * offsetx);
  85. make.width.mas_equalTo(364);
  86. make.height.mas_equalTo(44);
  87. }];
  88. //page number
  89. _pageNumberLabel = [[UILabel alloc] init];
  90. [_pageNumberLabel setText:@"Page Text"];
  91. _pageNumberLabel.font = [UIFont boldSystemFontOfSize:14];
  92. _pageNumberText = [[UITextField alloc] init];
  93. _pageNumberText.borderStyle = UITextBorderStyleRoundedRect;
  94. _pageNumberText.placeholder = @"text";
  95. [self addSubview:_pageNumberLabel];
  96. [self addSubview:_pageNumberText];
  97. [_pageNumberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  98. make.top.equalTo(_colorSlider.mas_bottom).offset(offsetx);
  99. make.left.equalTo(self.mas_left).offset(offsetx);
  100. make.height.mas_equalTo(44);
  101. make.width.mas_equalTo(73);
  102. }];
  103. [_pageNumberText mas_makeConstraints:^(MASConstraintMaker *make) {
  104. make.top.equalTo(_colorSlider.mas_bottom).offset(offsetx);
  105. make.left.equalTo(_pageNumberLabel.mas_right).offset(offsetx);
  106. make.height.mas_equalTo(44);
  107. make.width.mas_equalTo(93);
  108. }];
  109. //font size
  110. _fontSizeLabel = [[UILabel alloc] init];
  111. [_fontSizeLabel setText:@"Font Szie"];
  112. _fontSizeLabel.font = [UIFont boldSystemFontOfSize:14];
  113. _fontSizeText = [[UITextField alloc] init];
  114. _fontSizeText.borderStyle = UITextBorderStyleRoundedRect;
  115. _fontSizeText.placeholder = @"18.0";
  116. _fontSizeText.keyboardType = UIKeyboardTypeDefault;
  117. _fontSizeText.delegate = self;
  118. [self addSubview:_fontSizeLabel];
  119. [self addSubview:_fontSizeText];
  120. [_fontSizeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  121. make.top.equalTo(_colorSlider.mas_bottom).offset(offsetx);
  122. make.left.equalTo(_pageNumberText.mas_right).offset(offsetx + 20);
  123. make.height.mas_equalTo(44);
  124. make.width.mas_equalTo(73);
  125. }];
  126. [_fontSizeText mas_makeConstraints:^(MASConstraintMaker *make) {
  127. make.top.equalTo(_colorSlider.mas_bottom).offset(offsetx);
  128. make.left.equalTo(_fontSizeLabel.mas_right).offset(offsetx);
  129. make.height.mas_equalTo(44);
  130. make.width.mas_equalTo(93);
  131. }];
  132. //font index
  133. _pageIndexLabel = [[UILabel alloc] init];
  134. [_pageIndexLabel setText:@"Page Start"];
  135. _pageIndexLabel.font = [UIFont boldSystemFontOfSize:14];
  136. _pageIndexNumberText = [[UITextField alloc] init];
  137. _pageIndexNumberText.borderStyle = UITextBorderStyleRoundedRect;
  138. _pageIndexNumberText.placeholder = @"1";
  139. _pageIndexNumberStepper = [[UIStepper alloc] init];
  140. // The step value is updated in real time as the user interacts
  141. _pageIndexNumberStepper.continuous = YES;
  142. _pageIndexNumberStepper.autorepeat = YES;
  143. _pageIndexNumberStepper.wraps = NO;
  144. _pageIndexNumberStepper.minimumValue = 1;
  145. _pageIndexNumberStepper.maximumValue = 1000;
  146. _pageIndexNumberStepper.stepValue = 1;
  147. _pageIndexNumberStepper.value = 1;
  148. [self addSubview:_pageIndexLabel];
  149. [self addSubview:_pageIndexNumberText];
  150. //[self addSubview:_pageIndexNumberStepper];
  151. [_pageIndexLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  152. make.top.equalTo(_pageNumberLabel.mas_bottom).offset(offsetx);
  153. make.left.equalTo(self.mas_left).offset(offsetx);
  154. make.height.mas_equalTo(44);
  155. make.width.mas_equalTo(73);
  156. }];
  157. [_pageIndexNumberText mas_makeConstraints:^(MASConstraintMaker *make) {
  158. make.top.equalTo(_pageNumberText.mas_bottom).offset(offsetx+5);
  159. make.left.equalTo(_pageIndexLabel.mas_right).offset(offsetx);
  160. make.height.mas_equalTo(33);
  161. make.width.mas_equalTo(93);
  162. }];
  163. self.backgroundColor = [UIColor whiteColor];
  164. }
  165. return self;
  166. }
  167. - (BOOL)textFieldShouldReturn:(UITextField *)textField {
  168. [_pageNumberText resignFirstResponder];
  169. return YES;
  170. }
  171. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  172. NSString *number = kNumber;
  173. NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",number];
  174. return [numberPre evaluateWithObject:string];
  175. }
  176. @end