YMMemberRenewalItemCell.m 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. //
  2. // YMMemberRenewalItemCell.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/2/27.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMMemberRenewalItemCell.h"
  9. #import "YMMemberRenewalItemCellViewModel.h"
  10. @interface YMMemberRenewalItemCell()
  11. /// ViewModel
  12. @property (nonatomic, strong) YMMemberRenewalItemCellViewModel *viewModel;
  13. /// 基础视图
  14. @property (nonatomic, strong) UIView *baseView;
  15. /// 渐变视图
  16. @property (nonatomic, strong) UIImageView *gradientView;
  17. /// 图标
  18. @property (nonatomic, strong) UIImageView *itemIcon;
  19. /// 续费项目名称标签
  20. @property (nonatomic, strong) UILabel *renewalItemNameLb;
  21. /// 续费项目钱符号标签
  22. @property (nonatomic, strong) UILabel *renewalItemMoneySymbolLb;
  23. /// 续费项目金额标签
  24. @property (nonatomic, strong) UILabel *renewalItemAmountLb;
  25. /// 续费项目原价标签
  26. @property (nonatomic, strong) UILabel *renewalItemOriginalPriceLb;
  27. /// 节省金额标签
  28. @property (nonatomic, strong) UILabel *amountSavingsPriceLb;
  29. /// 选中标签
  30. @property (nonatomic, strong) UIImageView *selectedImgv;
  31. @end
  32. @implementation YMMemberRenewalItemCell
  33. - (void)setSelected:(BOOL)selected{
  34. [super setSelected:selected];
  35. self.gradientView.image = selected ? ImageByName(@"ym_member_center_renew_item_bg_selected") : ImageByName(@"ym_member_center_renew_item_bg_normal");
  36. }
  37. - (void)ym_setupViews{
  38. self.contentView.backgroundColor = UIColor.clearColor;
  39. self.backgroundColor = UIColor.clearColor;
  40. [self.contentView addSubview:self.baseView];
  41. [self.baseView addSubview:self.gradientView];
  42. [self.gradientView addSubview:self.itemIcon];
  43. [self.gradientView addSubview:self.renewalItemNameLb];
  44. [self.gradientView addSubview:self.renewalItemMoneySymbolLb];
  45. [self.gradientView addSubview:self.renewalItemAmountLb];
  46. [self.gradientView addSubview:self.renewalItemOriginalPriceLb];
  47. [self.gradientView addSubview:self.amountSavingsPriceLb];
  48. [self.gradientView addSubview:self.selectedImgv];
  49. [self setNeedsUpdateConstraints];
  50. [self updateConstraintsIfNeeded];
  51. }
  52. - (void)updateConstraints {
  53. [self.baseView mas_makeConstraints:^(MASConstraintMaker *make) {
  54. make.top.equalTo(self.contentView);
  55. make.left.equalTo(self.contentView);
  56. make.right.equalTo(self.contentView);
  57. make.bottom.equalTo(self.contentView);
  58. }];
  59. [self.gradientView mas_makeConstraints:^(MASConstraintMaker *make) {
  60. make.top.equalTo(self.baseView);
  61. make.left.equalTo(self.baseView);
  62. make.right.equalTo(self.baseView);
  63. make.bottom.equalTo(self.baseView);
  64. }];
  65. [self.renewalItemNameLb mas_makeConstraints:^(MASConstraintMaker *make) {
  66. make.top.equalTo(self.gradientView).offset(adapt(20));
  67. make.centerX.equalTo(self.gradientView).offset(adapt(11));
  68. }];
  69. [self.itemIcon mas_makeConstraints:^(MASConstraintMaker *make) {
  70. make.centerY.equalTo(self.renewalItemNameLb);
  71. make.right.equalTo(self.renewalItemNameLb.mas_left).offset(adapt(-5));
  72. make.width.height.mas_equalTo(adapt(16));
  73. }];
  74. [self.renewalItemAmountLb mas_makeConstraints:^(MASConstraintMaker *make) {
  75. make.centerX.equalTo(self.gradientView.mas_centerX);
  76. make.top.equalTo(self.renewalItemNameLb.mas_bottom).offset(adapt(5));
  77. }];
  78. [self.renewalItemOriginalPriceLb mas_makeConstraints:^(MASConstraintMaker *make) {
  79. make.centerX.equalTo(self.gradientView.mas_centerX);
  80. make.top.equalTo(self.renewalItemAmountLb.mas_bottom).offset(adapt(4));
  81. }];
  82. [self.amountSavingsPriceLb mas_makeConstraints:^(MASConstraintMaker *make) {
  83. make.top.equalTo(self.renewalItemOriginalPriceLb.mas_bottom).offset(adapt(4));
  84. make.centerX.equalTo(self.gradientView);
  85. }];
  86. [self.selectedImgv mas_makeConstraints:^(MASConstraintMaker *make) {
  87. make.right.bottom.equalTo(self.gradientView);
  88. make.width.height.mas_equalTo(adapt(22));
  89. }];
  90. [super updateConstraints];
  91. }
  92. - (void)ym_bindViewModel:(YMMemberRenewalItemCellViewModel*)viewModel{
  93. if (!viewModel) {
  94. return;
  95. }
  96. _viewModel = viewModel;
  97. self.renewalItemNameLb.text = self.viewModel.renewalItemName;
  98. NSString *renewalItemAmountStr = stringFormat(@"¥%ld",self.viewModel.renewalItemAmount);
  99. NSMutableAttributedString *renewalItemAmountAttributed = [[NSMutableAttributedString alloc]initWithString:renewalItemAmountStr];
  100. renewalItemAmountAttributed.yy_font = LCBoldFont(28);
  101. renewalItemAmountAttributed.yy_color = HexColorFromRGB(0x894200);
  102. renewalItemAmountAttributed.yy_alignment = NSTextAlignmentCenter;
  103. [renewalItemAmountAttributed yy_setFont:LCBoldFont(20) range:[renewalItemAmountStr rangeOfString:@"¥"]];
  104. self.renewalItemAmountLb.attributedText = renewalItemAmountAttributed;
  105. self.renewalItemOriginalPriceLb.attributedText = self.viewModel.renewalItemOriginalPriceAttributed;
  106. self.amountSavingsPriceLb.text = self.viewModel.amountSavingsPrice;
  107. }
  108. - (UIView *)baseView{
  109. if (!_baseView) {
  110. _baseView = [[UIView alloc]init];
  111. }
  112. return _baseView;
  113. }
  114. - (UIImageView *)itemIcon{
  115. if (!_itemIcon) {
  116. _itemIcon = [[UIImageView alloc] init];
  117. _itemIcon.image = ImageByName(@"ym_member_center_renew_item_icon");
  118. }
  119. return _itemIcon;
  120. }
  121. - (UIImageView *)gradientView{
  122. if (!_gradientView) {
  123. _gradientView = [[UIImageView alloc] init];
  124. _gradientView.image = ImageByName(@"ym_member_center_renew_item_bg_normal");
  125. _gradientView.layer.borderWidth = 1;
  126. _gradientView.layer.borderColor = [UIColor clearColor].CGColor;
  127. //_gradientView.layer.cornerRadius = adapt(10);
  128. //_gradientView.layer.masksToBounds = YES;
  129. //[_gradientView ym_setGradientBackgroundWithColors:kMainGradColors locations:kMainGradLocation startPoint:kMainGradStartP endPoint:kMainGradEndP];
  130. }
  131. return _gradientView;
  132. }
  133. - (UILabel *)renewalItemNameLb{
  134. if (!_renewalItemNameLb) {
  135. _renewalItemNameLb = [[UILabel alloc]init];
  136. _renewalItemNameLb.font = LCBoldFont(13);
  137. _renewalItemNameLb.textColor = HexColorFromRGB(0x894200);
  138. _renewalItemNameLb.textAlignment = NSTextAlignmentCenter;
  139. _renewalItemNameLb.text = @"******";
  140. }
  141. return _renewalItemNameLb;
  142. }
  143. - (UILabel *)renewalItemAmountLb{
  144. if (!_renewalItemAmountLb) {
  145. _renewalItemAmountLb = [[UILabel alloc]init];
  146. _renewalItemAmountLb.font = LCBoldFont(28);
  147. _renewalItemAmountLb.textColor = HexColorFromRGB(0x894200);
  148. _renewalItemAmountLb.textAlignment = NSTextAlignmentCenter;
  149. _renewalItemAmountLb.text = @"¥******";
  150. }
  151. return _renewalItemAmountLb;
  152. }
  153. - (UILabel *)renewalItemOriginalPriceLb{
  154. if (!_renewalItemOriginalPriceLb) {
  155. _renewalItemOriginalPriceLb = [[UILabel alloc]init];
  156. _renewalItemOriginalPriceLb.font = LCFont(9);
  157. _renewalItemOriginalPriceLb.textColor = HexColorFromRGB(0x894200);
  158. _renewalItemOriginalPriceLb.textAlignment = NSTextAlignmentCenter;
  159. _renewalItemOriginalPriceLb.text = @"原价****";
  160. }
  161. return _renewalItemOriginalPriceLb;
  162. }
  163. - (UILabel *)amountSavingsPriceLb{
  164. if (!_amountSavingsPriceLb) {
  165. _amountSavingsPriceLb = [[UILabel alloc]init];
  166. _amountSavingsPriceLb.font = LCFont(10);
  167. _amountSavingsPriceLb.textColor = HexColorFromRGBA(0x894200, 1);
  168. _amountSavingsPriceLb.textAlignment = NSTextAlignmentCenter;
  169. _amountSavingsPriceLb.text = @"立省***元";
  170. _amountSavingsPriceLb.backgroundColor = HexColorFromRGBA(0xFFFFFF, 0);
  171. }
  172. return _amountSavingsPriceLb;
  173. }
  174. - (UIImageView *)selectedImgv {
  175. if (!_selectedImgv) {
  176. _selectedImgv = [[UIImageView alloc] init];
  177. _selectedImgv.hidden = YES;
  178. _selectedImgv.image = ImageByName(@"ym_member_center_selected_mark");
  179. }
  180. return _selectedImgv;
  181. }
  182. @end