PDFHeaderFooterAddView.m 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. //
  2. // HeaderFooterAddView.m
  3. // PDFViewer
  4. //
  5. // Created by kdanmobile_2 on 2022/11/16.
  6. //
  7. #import "PDFHeaderFooterAddView.h"
  8. #import "Masonry.h"
  9. @implementation PDFHeaderFooterAddView
  10. - (instancetype)initWithFrame:(CGRect)frame {
  11. self = [super initWithFrame:frame];
  12. if (self) {
  13. // Page number
  14. _pageNumberLabel = [[UILabel alloc] init];
  15. _pageNumberText = [[UITextField alloc] init];
  16. [self addSubview:_pageNumberLabel];
  17. [self addSubview:_pageNumberText];
  18. // Font size
  19. _fontSizeLabel = [[UILabel alloc] init];
  20. _fontSizeText = [[UITextField alloc] init];
  21. [self addSubview:_fontSizeLabel];
  22. [self addSubview:_fontSizeText];
  23. // Page index
  24. _pageIndexLabel = [[UILabel alloc] init];
  25. _pageIndexNumberText = [[UITextField alloc] init];
  26. [self addSubview:_pageIndexLabel];
  27. [self addSubview:_pageIndexNumberText];
  28. self.backgroundColor = [UIColor whiteColor];
  29. }
  30. return self;
  31. }
  32. #pragma mark - Layout
  33. - (void)layoutSubviews {
  34. [super layoutSubviews];
  35. CGFloat offsetx = 3.5;
  36. // Page number
  37. [_pageNumberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  38. make.top.equalTo(self.colorSlider.mas_bottom).offset(offsetx);
  39. make.left.equalTo(self.mas_left).offset(offsetx);
  40. make.height.mas_equalTo(34);
  41. make.width.mas_equalTo(73);
  42. }];
  43. [_pageNumberText mas_makeConstraints:^(MASConstraintMaker *make) {
  44. make.top.equalTo(self.colorSlider.mas_bottom).offset(offsetx);
  45. make.left.equalTo(_pageNumberLabel.mas_right).offset(offsetx);
  46. make.height.mas_equalTo(34);
  47. make.width.mas_equalTo(93);
  48. }];
  49. // Font size
  50. [_fontSizeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  51. make.top.equalTo(self.colorSlider.mas_bottom).offset(offsetx);
  52. make.left.equalTo(_pageNumberText.mas_right).offset(offsetx + 20);
  53. make.height.mas_equalTo(34);
  54. make.width.mas_equalTo(73);
  55. }];
  56. [_fontSizeText mas_makeConstraints:^(MASConstraintMaker *make) {
  57. make.top.equalTo(self.colorSlider.mas_bottom).offset(offsetx);
  58. make.left.equalTo(_fontSizeLabel.mas_right).offset(offsetx);
  59. make.height.mas_equalTo(34);
  60. make.width.mas_equalTo(93);
  61. }];
  62. // Page index
  63. [_pageIndexLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  64. make.top.equalTo(_pageNumberLabel.mas_bottom).offset(offsetx);
  65. make.left.equalTo(self.mas_left).offset(offsetx);
  66. make.height.mas_equalTo(34);
  67. make.width.mas_equalTo(73);
  68. }];
  69. [_pageIndexNumberText mas_makeConstraints:^(MASConstraintMaker *make) {
  70. make.top.equalTo(_pageNumberText.mas_bottom).offset(offsetx+5);
  71. make.left.equalTo(_pageIndexLabel.mas_right).offset(offsetx);
  72. make.height.mas_equalTo(33);
  73. make.width.mas_equalTo(93);
  74. }];
  75. }
  76. #pragma mark - Assignment
  77. - (void)setText {
  78. // Page number location
  79. [self.localLabel setText:@"Page number position"];
  80. self.localLabel.font = [UIFont boldSystemFontOfSize:12];
  81. // Alignment
  82. [self.alignmentLabel setText:@"alignment"];
  83. self.alignmentLabel.font = [UIFont boldSystemFontOfSize:12];
  84. // Font color
  85. [self.colorLabel setText:@"Font Color"];
  86. self.colorLabel.font = [UIFont boldSystemFontOfSize:12];
  87. CALayer *layer = [self.colerImage layer];
  88. layer.borderColor = [[UIColor blackColor] CGColor];
  89. layer.borderWidth = 0.5f;
  90. self.colerImage.image = [UIImage imageNamed:@"text_color_bar"];
  91. self.colorSlider.minimumValue = 0;
  92. self.colorSlider.maximumValue = 100;
  93. self.colorSlider.value = 5;
  94. // Page number
  95. [_pageNumberLabel setText:@"Page Text"];
  96. _pageNumberLabel.font = [UIFont boldSystemFontOfSize:14];
  97. _pageNumberText.inputView = [[UIView alloc] initWithFrame:CGRectZero];
  98. _pageNumberText.inputAccessoryView = [[UIView alloc] initWithFrame:CGRectZero];
  99. _pageNumberText.delegate = self;
  100. _pageNumberText.adjustsFontSizeToFitWidth = YES;
  101. _pageNumberText.tintColor = [UIColor clearColor];
  102. _pageNumberText.borderStyle = UITextBorderStyleRoundedRect;
  103. _pageNumberText.placeholder = @"text";
  104. // Font size
  105. [_fontSizeLabel setText:@"Font Szie"];
  106. _fontSizeLabel.font = [UIFont boldSystemFontOfSize:14];
  107. _fontSizeText.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
  108. _fontSizeText.clearsOnBeginEditing = YES;
  109. _fontSizeText.borderStyle = UITextBorderStyleRoundedRect;
  110. _fontSizeText.placeholder = @"18.0";
  111. _fontSizeText.delegate = self;
  112. _fontSizeText.keyboardType = UIKeyboardTypeDefault;
  113. // Page index
  114. [_pageIndexLabel setText:@"Page Start"];
  115. _pageIndexLabel.font = [UIFont boldSystemFontOfSize:12];
  116. _pageIndexNumberText.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
  117. _pageIndexNumberText.clearsOnBeginEditing = YES;
  118. _pageIndexNumberText.delegate = self;
  119. _pageIndexNumberText.borderStyle = UITextBorderStyleRoundedRect;
  120. _pageIndexNumberText.placeholder = @"1";
  121. }
  122. #pragma mark - UITextFieldDelegate
  123. - (BOOL)textFieldShouldReturn:(UITextField *)textField {
  124. [textField resignFirstResponder];
  125. return YES;
  126. }
  127. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  128. if (_fontSizeText == textField || _pageNumberText == textField) {
  129. return [self validateValue:string];
  130. }
  131. return YES;
  132. }
  133. - (BOOL)validateValue:(NSString *)number {
  134. BOOL res = YES;
  135. NSCharacterSet *numberSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
  136. NSInteger i = 0;
  137. while (i < number.length) {
  138. NSString *str = [number substringWithRange:NSMakeRange(i, 1)];
  139. NSRange range = [str rangeOfCharacterFromSet:numberSet];
  140. if (range.length == 0) {
  141. res = NO;
  142. break;
  143. }
  144. i++;
  145. }
  146. return res;
  147. }
  148. @end