CPDFOpacitySliderView.m 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. //
  2. // CPDFOpacitySliderView.m
  3. // ComPDFKit_Tools
  4. //
  5. // Copyright © 2014-2024 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 "CPDFOpacitySliderView.h"
  13. #if __has_include(<ComPDFKit_Tools/ComPDFKit_Tools.h>)
  14. #import <ComPDFKit_Tools/ComPDFKit_Tools.h>
  15. #else
  16. #import "ComPDFKit_Tools.h"
  17. #endif
  18. @interface CPDFOpacitySliderView()
  19. @property (nonatomic,assign) int sliderCount;
  20. @end
  21. @implementation CPDFOpacitySliderView
  22. #pragma mark - Initializers
  23. - (instancetype)initWithFrame:(CGRect)frame {
  24. if (self = [super initWithFrame:frame]) {
  25. self.titleLabel = [[UILabel alloc] init];
  26. self.titleLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
  27. self.titleLabel.text = NSLocalizedString(@"Opacity", nil);
  28. self.titleLabel.textColor = [UIColor grayColor];
  29. self.titleLabel.font = [UIFont systemFontOfSize:12.0];
  30. [self addSubview:self.titleLabel];
  31. self.opacitySlider = [[UISlider alloc] init];
  32. self.opacitySlider.autoresizingMask = UIViewAutoresizingFlexibleWidth;
  33. self.opacitySlider.value = 1;
  34. self.opacitySlider.maximumValue = 1;
  35. self.opacitySlider.minimumValue = 0;
  36. [self.opacitySlider addTarget:self action:@selector(buttonItemClicked_changes:) forControlEvents:UIControlEventValueChanged];
  37. [self addSubview:self.opacitySlider];
  38. self.startLabel = [[UILabel alloc] init];
  39. self.startLabel.layer.borderWidth = 1.0;
  40. self.startLabel.textAlignment = NSTextAlignmentCenter;
  41. self.startLabel.layer.borderColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.1].CGColor;
  42. self.startLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
  43. self.startLabel.textColor = [CPDFColorUtils CPageEditToolbarFontColor];
  44. [self addSubview:self.startLabel];
  45. self.sliderCount = 10;
  46. self.leftMargin = self.rightMargin = self.rightTitleMargin = 0;
  47. self.backgroundColor = [CPDFColorUtils CAnnotationSampleBackgoundColor];
  48. }
  49. return self;
  50. }
  51. - (void)setBgColor:(UIColor *)bgColor {
  52. _bgColor = bgColor;
  53. self.backgroundColor = bgColor;
  54. }
  55. - (void)setDefaultValue:(CGFloat )defaultValue {
  56. _defaultValue = defaultValue;
  57. self.opacitySlider.value = defaultValue;
  58. self.startLabel.text = [NSString stringWithFormat:@"%d%%", (int)((defaultValue/1)*100)];;
  59. }
  60. - (void)layoutSubviews {
  61. [super layoutSubviews];
  62. self.titleLabel.frame = CGRectMake(20-self.rightTitleMargin, 0, self.frame.size.width, self.frame.size.height/2);
  63. self.opacitySlider.frame = CGRectMake(20 - self.leftMargin, self.frame.size.height/2, self.frame.size.width - 130 + self.leftMargin + self.rightMargin, self.frame.size.height/2);
  64. 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);
  65. }
  66. #pragma mark - Action
  67. - (void)buttonItemClicked_changes:(UISlider *)sender {
  68. self.sliderCount -- ;
  69. if(self.sliderCount == 3) {
  70. self.startLabel.text = [NSString stringWithFormat:@"%d%%", (int)((sender.value/1)*100)];
  71. if (self.delegate && [self.delegate respondsToSelector:@selector(opacitySliderView:opacity:)]) {
  72. [self.delegate opacitySliderView:self opacity:sender.value];
  73. }
  74. self.sliderCount = 10;
  75. }
  76. }
  77. @end