MHBeautyMenuCell.m 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. //
  2. // MHBeautyMenuCell.m
  3. #import "MHBeautyMenuCell.h"
  4. #import "MHBeautyParams.h"
  5. #import "MHBeautiesModel.h"
  6. @interface MHBeautyMenuCell()
  7. @property (nonatomic, strong) UIImageView *imgView;
  8. @property (nonatomic, strong) UILabel *beautyLabel;
  9. @property (nonatomic, strong) UIImageView *animationView;
  10. @property (nonatomic, strong) UIImageView *selectedImgView;
  11. @property (nonatomic, strong) UIButton *effectBtn;
  12. @property (nonatomic, strong) UIView * bgView;
  13. @property (nonatomic, strong) UIView * markView;
  14. @property(nonatomic,strong)UILabel *selectedLabel;
  15. @property (nonatomic, strong) UIView * bgLabel;
  16. @end
  17. @implementation MHBeautyMenuCell
  18. - (instancetype)initWithFrame:(CGRect)frame {
  19. if (self = [super initWithFrame:frame]) {
  20. [self addSubview:self.imgView];
  21. [self addSubview:self.beautyLabel];
  22. }
  23. return self;
  24. }
  25. - (void)setMenuModel:(MHBeautiesModel *)menuModel {
  26. if (!menuModel) {
  27. return;
  28. }
  29. _menuModel = menuModel;
  30. self.beautyLabel.text = YZMsg(menuModel.beautyTitle);
  31. if (menuModel.menuType == MHBeautyMenuType_Menu) {
  32. if ([menuModel.beautyTitle isEqualToString:@""]) {//仅限菜单页,@""的时候是相机功能
  33. UIImage * img = BundleImg(@"beautyCamera")
  34. self.imgView.image = img;
  35. self.imgView.frame = CGRectMake((self.frame.size.width - 60)/2, (self.frame.size.height - 60)/2, 60, 60);
  36. }
  37. //短视频拍摄
  38. else if([menuModel.beautyTitle isEqualToString:@"单击拍"]){
  39. UIImage *img = [UIImage imageNamed:menuModel.imgName];
  40. self.imgView.image = img;
  41. self.imgView.frame = CGRectMake((self.frame.size.width - 60)/2, (self.frame.size.height - 60)/2, 60, 60);
  42. CGFloat bottom = self.imgView.frame.origin.y + self.imgView.frame.size.height;
  43. CGRect rect = self.beautyLabel.frame;
  44. self.beautyLabel.frame = CGRectMake(rect.origin.x, bottom + 10, rect.size.width, rect.size.height);
  45. self.beautyLabel.text = @"";
  46. self.beautyLabel.hidden = YES;
  47. }
  48. else {
  49. for (UIView *subview in self.imgView.subviews){
  50. [subview removeFromSuperview];
  51. }
  52. self.imgView.image = BundleImg(menuModel.imgName);
  53. self.imgView.frame = CGRectMake((self.frame.size.width - 35)/2, self.isSimplification?(self.frame.size.height - 35)/2:15, 35, 35);
  54. // if (!self.isSimplification) {
  55. CGFloat bottom = self.imgView.frame.origin.y + self.imgView.frame.size.height;
  56. CGRect rect = self.beautyLabel.frame;
  57. self.beautyLabel.frame = CGRectMake(rect.origin.x, bottom, rect.size.width, rect.size.height);
  58. // self.beautyLabel.hidden = NO;
  59. // }else{
  60. // self.beautyLabel.hidden = YES;
  61. // }
  62. }
  63. }
  64. }
  65. //美颜,美型,美妆,动作 使用
  66. -(void)setBeautyModel:(MHBeautiesModel *)beautyModel{
  67. _beautyModel = beautyModel;
  68. self.beautyLabel.textColor = beautyModel.isSelected ? FontColorSelected : FontColorBlackNormal;
  69. self.beautyLabel.text = YZMsg(beautyModel.beautyTitle);
  70. if (beautyModel.isSelected) {
  71. NSString *name = [NSString stringWithFormat:@"%@_selected",beautyModel.imgName];
  72. UIImage *img = BundleImg(name);
  73. self.imgView.image = img;
  74. } else {
  75. self.imgView.image = BundleImg(beautyModel.imgName);
  76. }
  77. }
  78. //一键美颜,滤镜,特效使用
  79. - (void)setQuickModel:(MHBeautiesModel *)quickModel{
  80. _quickModel = quickModel;
  81. self.beautyLabel.text = YZMsg(quickModel.beautyTitle);
  82. self.imgView.image = BundleImg(quickModel.imgName);
  83. self.imgView.frame = CGRectMake((self.frame.size.width - 50)/2, 10, 50, 70);
  84. self.beautyLabel.frame = CGRectMake((self.frame.size.width - 50)/2, 65, 50, 15);
  85. self.beautyLabel.backgroundColor = UIColor.whiteColor;
  86. self.beautyLabel.textColor = quickModel.isSelected ? [UIColor whiteColor] : FontColorBlackNormal1;
  87. self.selectedLabel.text = YZMsg(quickModel.beautyTitle);
  88. self.markView.hidden = !quickModel.isSelected;
  89. self.selectedImgView.hidden = !quickModel.isSelected;
  90. }
  91. //水印 使用
  92. - (void)setWatermarkModel:(MHBeautiesModel *)watermarkModel{
  93. _watermarkModel = watermarkModel;
  94. self.imgView.image = [UIImage imageNamed:watermarkModel.imgName];
  95. self.selectedImgView.image = BundleImg(@"ic_border_selected");
  96. self.selectedImgView.hidden = !watermarkModel.isSelected;
  97. self.imgView.frame = CGRectMake((self.frame.size.width-30)/2, (self.frame.size.height-30)/2,30 ,30);
  98. self.selectedImgView.frame = CGRectMake((self.frame.size.width-50)/2, (self.frame.size.height-50)/2,50 ,50);
  99. }
  100. //哈哈镜 使用
  101. -(void)setHahaModel:(MHBeautiesModel *)hahaModel{
  102. _hahaModel = hahaModel;
  103. self.imgView.image = BundleImg(hahaModel.imgName);
  104. self.selectedImgView.image = BundleImg(@"ic_border_selected");
  105. self.selectedImgView.hidden = !hahaModel.isSelected;
  106. self.beautyLabel.textColor = hahaModel.isSelected ? FontColorSelected : FontColorBlackNormal;
  107. self.beautyLabel.text = YZMsg(hahaModel.beautyTitle);
  108. self.selectedImgView.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
  109. }
  110. - (void)takePhotoAnimation {
  111. [UIView animateWithDuration:0.2 animations:^{
  112. self.animationView.transform = CGAffineTransformMakeScale(0.9, 0.9);
  113. } completion:^(BOOL finished) {
  114. [UIView animateWithDuration:0.2 animations:^{
  115. self.animationView.transform = CGAffineTransformMakeScale(1, 1);
  116. }];
  117. }];
  118. }
  119. #pragma mark - lazy
  120. - (UIImageView *)imgView {
  121. if (!_imgView) {
  122. _imgView = [[UIImageView alloc] initWithFrame:CGRectMake((self.frame.size.width - 40)/2, (self.frame.size.height - 40 -23)/2, 40, 40)];
  123. _imgView.contentMode = UIViewContentModeScaleAspectFit;
  124. }
  125. return _imgView;
  126. }
  127. - (UILabel *)beautyLabel {
  128. if (!_beautyLabel) {
  129. CGFloat bottom = _imgView.frame.origin.y + _imgView.frame.size.height;
  130. _beautyLabel = [[UILabel alloc] initWithFrame:CGRectMake(3, bottom+8, self.frame.size.width - 6, 15)];
  131. _beautyLabel.font = Font_10;
  132. _beautyLabel.textColor = [UIColor whiteColor];
  133. _beautyLabel.textAlignment = NSTextAlignmentCenter;
  134. }
  135. return _beautyLabel;
  136. }
  137. - (UIImageView *)animationView {
  138. if (!_animationView) {
  139. UIImage *img = BundleImg(@"cameraPoint");
  140. _animationView = [[UIImageView alloc] initWithImage:img];
  141. _animationView.contentMode = UIViewContentModeScaleAspectFit;
  142. }
  143. return _animationView;
  144. }
  145. - (UIImageView *)selectedImgView {
  146. if (!_selectedImgView) {
  147. UIImage *img = BundleImg(@"filter_selected2");
  148. _selectedImgView = [[UIImageView alloc] initWithImage:img];
  149. _selectedImgView.hidden = YES;
  150. _selectedImgView.frame = CGRectMake((self.frame.size.width-30)/2, (self.frame.size.height-30)/2, 30, 30);
  151. _selectedImgView.contentMode = UIViewContentModeScaleAspectFit;
  152. [self addSubview:_selectedImgView];
  153. }
  154. return _selectedImgView;
  155. }
  156. -(UIView *)markView{
  157. if (!_markView) {
  158. _markView = [[UIView alloc] initWithFrame:CGRectMake((self.frame.size.width - 50)/2, 15, self.imgView.bounds.size.width, self.imgView.frame.size.height-5)];
  159. _markView.hidden = YES;
  160. _markView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:MHAlpha];
  161. [_markView addSubview:self.selectedLabel];
  162. [self addSubview:_markView];
  163. }
  164. return _markView;
  165. }
  166. -(UILabel *)selectedLabel{
  167. if (!_selectedLabel) {
  168. _selectedLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,65-15 , 50, 15)];
  169. _selectedLabel.backgroundColor = UIColor.clearColor;
  170. _selectedLabel.font = Font_10;
  171. _selectedLabel.textColor = [UIColor whiteColor];
  172. _selectedLabel.textAlignment = NSTextAlignmentCenter;
  173. }
  174. return _selectedLabel;
  175. }
  176. - (void)changeRecordState:(BOOL)isRecording
  177. {
  178. if (isRecording){
  179. self.imgView.image = [UIImage imageNamed:@"record_pause"];
  180. self.beautyLabel.hidden = YES;
  181. }else{
  182. self.imgView.image = [UIImage imageNamed:@"record_start"];
  183. self.beautyLabel.hidden = NO;
  184. }
  185. }
  186. @end