HX_PhotoEditBottomView.m 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. //
  2. // HX_PhotoEditBottomView.m
  3. // photoEditDemo
  4. //
  5. // Created by Silence on 2020/6/20.
  6. // Copyright © 2020 Silence. All rights reserved.
  7. //
  8. #import "HX_PhotoEditBottomView.h"
  9. #import "UIView+HXExtension.h"
  10. #import "UIImage+HXExtension.h"
  11. #import "NSBundle+HXPhotoPicker.h"
  12. #import "UIFont+HXExtension.h"
  13. @interface HX_PhotoEditBottomView ()
  14. @property (weak, nonatomic) IBOutlet UIButton *graffitiBtn;
  15. @property (weak, nonatomic) IBOutlet UIButton *emojiBtn;
  16. @property (weak, nonatomic) IBOutlet UIButton *textBtn;
  17. @property (weak, nonatomic) IBOutlet UIButton *clipBtn;
  18. @property (weak, nonatomic) IBOutlet UIButton *mosaicBtn;
  19. @property (weak, nonatomic) IBOutlet UIButton *doneBtn;
  20. @end
  21. @implementation HX_PhotoEditBottomView
  22. + (instancetype)initView {
  23. return [[[NSBundle hx_photoPickerBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject];
  24. }
  25. - (void)awakeFromNib {
  26. [super awakeFromNib];
  27. UIImage *graffitiImage = [[UIImage hx_imageContentsOfFile:@"hx_photo_edit_tools_graffiti"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
  28. [self.graffitiBtn setImage:graffitiImage forState:UIControlStateNormal];
  29. [self.graffitiBtn setImage:graffitiImage forState:UIControlStateSelected];
  30. UIImage *emojiImage = [[UIImage hx_imageContentsOfFile:@"hx_photo_edit_tools_emoji"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
  31. [self.emojiBtn setImage:emojiImage forState:UIControlStateNormal];
  32. [self.emojiBtn setImage:emojiImage forState:UIControlStateSelected];
  33. UIImage *textImage = [[UIImage hx_imageContentsOfFile:@"hx_photo_edit_tools_text"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
  34. [self.textBtn setImage:textImage forState:UIControlStateNormal];
  35. [self.textBtn setImage:textImage forState:UIControlStateSelected];
  36. UIImage *clipImage = [[UIImage hx_imageContentsOfFile:@"hx_photo_edit_tools_clip"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
  37. [self.clipBtn setImage:clipImage forState:UIControlStateNormal];
  38. [self.clipBtn setImage:clipImage forState:UIControlStateSelected];
  39. UIImage *mosaicImage = [[UIImage hx_imageContentsOfFile:@"hx_photo_edit_tools_mosaic"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
  40. [self.mosaicBtn setImage:mosaicImage forState:UIControlStateNormal];
  41. [self.mosaicBtn setImage:mosaicImage forState:UIControlStateSelected];
  42. [self.doneBtn hx_radiusWithRadius:3 corner:UIRectCornerAllCorners];
  43. [self.doneBtn setTitle:[NSBundle hx_localizedStringForKey:@"完成"] forState:UIControlStateNormal];
  44. self.doneBtn.titleLabel.font = [UIFont hx_mediumPingFangOfSize:16];
  45. }
  46. - (void)setThemeColor:(UIColor *)themeColor {
  47. _themeColor = themeColor;
  48. [self.doneBtn setBackgroundColor:themeColor];
  49. }
  50. - (IBAction)didToolsBtnClick:(UIButton *)button {
  51. if (button.tag == 1 || button.tag == 2) {
  52. if (self.didToolsBtnBlock) {
  53. self.didToolsBtnBlock(button.tag, button.selected);
  54. }
  55. return;
  56. }
  57. if (button.selected) {
  58. button.selected = NO;
  59. button.imageView.tintColor = nil;
  60. }else {
  61. button.selected = YES;
  62. if (button.tag != 3) {
  63. button.imageView.tintColor = self.themeColor;
  64. }
  65. }
  66. if (button.tag != 3) {
  67. [self resetAllBtnState:button];
  68. }
  69. if (self.didToolsBtnBlock) {
  70. self.didToolsBtnBlock(button.tag, button.selected);
  71. }
  72. }
  73. - (IBAction)didDoneBtnClick:(UIButton *)button {
  74. if (self.didDoneBtnBlock) {
  75. self.didDoneBtnBlock();
  76. }
  77. }
  78. - (void)resetAllBtnState:(UIButton *)button {
  79. if (self.graffitiBtn != button) {
  80. self.graffitiBtn.selected = NO;
  81. self.graffitiBtn.imageView.tintColor = nil;
  82. }
  83. if (self.emojiBtn != button) {
  84. self.emojiBtn.selected = NO;
  85. self.emojiBtn.imageView.tintColor = nil;
  86. }
  87. if (self.textBtn != button) {
  88. self.textBtn.selected = NO;
  89. self.textBtn.imageView.tintColor = nil;
  90. }
  91. if (self.clipBtn != button) {
  92. self.clipBtn.selected = NO;
  93. self.clipBtn.imageView.tintColor = nil;
  94. }
  95. if (self.mosaicBtn != button) {
  96. self.mosaicBtn.selected = NO;
  97. self.mosaicBtn.imageView.tintColor = nil;
  98. }
  99. if (self.doneBtn != button) {
  100. self.doneBtn.selected = NO;
  101. self.doneBtn.imageView.tintColor = nil;
  102. }
  103. }
  104. - (void)endCliping {
  105. if (self.clipBtn.selected) {
  106. [self didToolsBtnClick:self.clipBtn];
  107. }
  108. }
  109. @end