CPDFThicknessSliderView.m 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //
  2. // CPDFThicknessSliderView.m
  3. // compdfkit-tools
  4. //
  5. // Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
  6. //
  7. // THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  8. // AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  9. // UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
  10. // This notice may not be removed from this file.
  11. //
  12. #import "CPDFThicknessSliderView.h"
  13. #import <compdfkit_tools/CPDFColorUtils.h>
  14. @interface CPDFThicknessSliderView()
  15. @property (nonatomic,assign) int sliderCount;
  16. @end
  17. @implementation CPDFThicknessSliderView
  18. #pragma mark - Initializers
  19. - (instancetype)initWithFrame:(CGRect)frame {
  20. if (self = [super initWithFrame:frame]) {
  21. self.titleLabel = [[UILabel alloc] init];
  22. self.titleLabel.text = NSLocalizedString(@"Thickeness", nil);
  23. self.titleLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
  24. self.titleLabel.textColor = [UIColor grayColor];
  25. self.titleLabel.font = [UIFont systemFontOfSize:12.0];
  26. [self addSubview:self.titleLabel];
  27. self.thicknessSlider = [[UISlider alloc] init];
  28. self.thicknessSlider.autoresizingMask = UIViewAutoresizingFlexibleWidth;
  29. self.thicknessSlider.maximumValue = 10.0;
  30. self.thicknessSlider.minimumValue = 1.0;
  31. [self.thicknessSlider addTarget:self action:@selector(buttonItemClicked_changes:) forControlEvents:UIControlEventValueChanged];
  32. [self addSubview:self.thicknessSlider];
  33. self.startLabel = [[UILabel alloc] init];
  34. self.startLabel.text = NSLocalizedString(@"10pt", nil);
  35. self.startLabel.layer.borderWidth = 1.0;
  36. self.startLabel.textAlignment = NSTextAlignmentCenter;
  37. self.startLabel.layer.borderColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.1].CGColor;
  38. self.startLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
  39. self.startLabel.textColor = [CPDFColorUtils CFormFontColor];
  40. [self addSubview:self.startLabel];
  41. self.thick = 1;
  42. self.sliderCount = 10;
  43. self.leftTitleMargin = self.rightMargin = self.leftMargin = 0;
  44. self.backgroundColor = [CPDFColorUtils CAnnotationSampleBackgoundColor];
  45. }
  46. return self;
  47. }
  48. - (void)setThick:(CGFloat)thick {
  49. _thick = thick;
  50. }
  51. - (void)setDefaultValue:(CGFloat)defaultValue {
  52. _defaultValue = defaultValue;
  53. self.thicknessSlider.value = defaultValue*10;
  54. self.startLabel.text = [NSString stringWithFormat:@"%.1fpt", defaultValue * 100];
  55. }
  56. - (void)layoutSubviews {
  57. [super layoutSubviews];
  58. self.titleLabel.frame = CGRectMake(20 -self.leftTitleMargin, 0, self.frame.size.width, self.frame.size.height/2);
  59. self.thicknessSlider.frame = CGRectMake(20-self.leftMargin, self.frame.size.height/2, self.frame.size.width - 130 + self.leftMargin + self.rightMargin, self.frame.size.height/2);
  60. self.startLabel.frame = CGRectMake(self.frame.size.width - 100 + self.rightMargin, self.frame.size.height/2 + 7.5, 80, self.frame.size.height/2 -15);
  61. }
  62. #pragma mark - Action
  63. - (void)buttonItemClicked_changes:(UISlider *)sender {
  64. self.sliderCount -- ;
  65. if(self.sliderCount == 3) {
  66. self.startLabel.text = [NSString stringWithFormat:@"%.1fpt", sender.value * self.thick];
  67. if (self.delegate && [self.delegate respondsToSelector:@selector(thicknessSliderView:thickness:)]) {
  68. [self.delegate thicknessSliderView:self thickness:sender.value];
  69. }
  70. self.sliderCount = 10;
  71. }
  72. }
  73. @end