YMInvitationBreakdownListInvitingEarningsCell.m 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. //
  2. // YMInvitationBreakdownListCell.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/3/14.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMInvitationBreakdownListInvitingEarningsCell.h"
  9. #import "YMInvitationBreakdownListCellViewModel.h"
  10. @interface YMInvitationBreakdownListInvitingEarningsCell ()
  11. /// 邀请明细VM
  12. @property (nonatomic, strong) YMInvitationBreakdownListCellViewModel *viewModel;
  13. /// 基础视图
  14. @property (nonatomic, strong) UIView *baseView;
  15. /// 用户头像视图
  16. @property (nonatomic, strong) UIImageView *userAvatarView;
  17. /// 用户昵称标签
  18. @property (nonatomic, strong) UILabel *userNicknameLb;
  19. /// 用户收支明细日期标签
  20. @property (nonatomic, strong) UILabel *userInvitationEarningsDateLb;
  21. /// 用户收支明细描述标签
  22. @property (nonatomic, strong) UILabel *userInvitationEarningsDescLb;
  23. /// 用户收支明细金额标签
  24. @property (nonatomic, strong) UILabel *userInvitationEarningsAmountLb;
  25. @end
  26. @implementation YMInvitationBreakdownListInvitingEarningsCell
  27. - (void)awakeFromNib {
  28. [super awakeFromNib];
  29. // Initialization code
  30. }
  31. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  32. [super setSelected:selected animated:animated];
  33. // Configure the view for the selected state
  34. }
  35. - (void)ym_setupViews{
  36. [self.contentView addSubview:self.baseView];
  37. [self.baseView addSubview:self.userAvatarView];
  38. [self.baseView addSubview:self.userNicknameLb];
  39. [self.baseView addSubview:self.userInvitationEarningsDateLb];
  40. [self.baseView addSubview:self.userInvitationEarningsDescLb];
  41. [self.baseView addSubview:self.userInvitationEarningsAmountLb];
  42. [self setNeedsUpdateConstraints];
  43. [self updateConstraintsIfNeeded];
  44. }
  45. - (void)updateConstraints{
  46. [self.baseView mas_makeConstraints:^(MASConstraintMaker *make) {
  47. make.top.equalTo(self.contentView).offset(adapt(10));
  48. make.left.equalTo(self.contentView).offset(adapt(10));
  49. make.right.equalTo(self.contentView).offset(adapt(-10));
  50. make.bottom.equalTo(self.contentView);
  51. }];
  52. [self.userAvatarView mas_makeConstraints:^(MASConstraintMaker *make) {
  53. make.centerY.equalTo(self.baseView.mas_centerY);
  54. make.left.equalTo(self.baseView).offset(adapt(12));
  55. make.width.height.mas_equalTo(adapt(50));
  56. }];
  57. [self.userNicknameLb mas_makeConstraints:^(MASConstraintMaker *make) {
  58. make.bottom.equalTo(self.userAvatarView.mas_centerY).offset(adapt(-5));
  59. make.left.equalTo(self.userAvatarView.mas_right).offset(adapt(8));
  60. }];
  61. [self.userInvitationEarningsDateLb mas_makeConstraints:^(MASConstraintMaker *make) {
  62. make.top.equalTo(self.userAvatarView.mas_centerY).offset(adapt(5));
  63. make.left.equalTo(self.userAvatarView.mas_right).offset(adapt(8));
  64. }];
  65. [self.userInvitationEarningsDescLb mas_makeConstraints:^(MASConstraintMaker *make) {
  66. make.centerY.equalTo(self.userNicknameLb.mas_centerY);
  67. make.left.equalTo(self.userNicknameLb.mas_right).offset(adapt(8));
  68. make.right.equalTo(self.baseView).offset(adapt(-12));
  69. }];
  70. [self.userInvitationEarningsAmountLb mas_makeConstraints:^(MASConstraintMaker *make) {
  71. make.bottom.equalTo(self.userInvitationEarningsDateLb.mas_bottom);
  72. make.left.equalTo(self.userInvitationEarningsDateLb.mas_right).offset(adapt(8));
  73. make.right.equalTo(self.baseView).offset(adapt(-12));
  74. }];
  75. [super updateConstraints];
  76. }
  77. - (void)ym_bindViewModel:(YMInvitationBreakdownListCellViewModel *)viewModel{
  78. if (!viewModel) {
  79. return;
  80. }
  81. _viewModel = viewModel;
  82. [self.userAvatarView sd_setImageWithURL:[LCTools getImageUrlWithAddress:self.viewModel.userAvatar]];
  83. self.userNicknameLb.text = self.viewModel.userNickname;
  84. self.userInvitationEarningsDateLb.text = self.viewModel.userInvitationEarningsDate;
  85. self.userInvitationEarningsDescLb.text = self.viewModel.userInvitationEarningsDesc;
  86. self.userInvitationEarningsAmountLb.attributedText = self.viewModel.userInvitationEarningsAmount;
  87. }
  88. - (UIView *)baseView{
  89. if (!_baseView) {
  90. _baseView = [[UIView alloc]init];
  91. _baseView.backgroundColor = HexColorFromRGB(0xf6f6f6);
  92. _baseView.layer.cornerRadius = adapt(10);
  93. _baseView.layer.masksToBounds = YES;
  94. }
  95. return _baseView;
  96. }
  97. - (UIImageView *)userAvatarView{
  98. if (!_userAvatarView) {
  99. _userAvatarView = [[UIImageView alloc]init];
  100. _userAvatarView.layer.cornerRadius = adapt(50)/2;
  101. _userAvatarView.layer.masksToBounds = YES;
  102. }
  103. return _userAvatarView;
  104. }
  105. - (UILabel *)userNicknameLb{
  106. if (!_userNicknameLb) {
  107. _userNicknameLb = [[UILabel alloc]init];
  108. _userNicknameLb.font = LCFont(16);
  109. _userNicknameLb.textColor = HexColorFromRGB(0x333333);
  110. _userNicknameLb.textAlignment = NSTextAlignmentLeft;
  111. _userNicknameLb.text = @"******";
  112. /**
  113. *抗拉伸 setContentHuggingPriority(值越高,越不容易拉伸)
  114. */
  115. [_userNicknameLb setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
  116. /**
  117. *抗压缩 setContentCompressionResistancePriority(值越高,越不容易压缩)
  118. **/
  119. [_userNicknameLb setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
  120. }
  121. return _userNicknameLb;
  122. }
  123. - (UILabel *)userInvitationEarningsDateLb{
  124. if (!_userInvitationEarningsDateLb) {
  125. _userInvitationEarningsDateLb = [[UILabel alloc]init];
  126. _userInvitationEarningsDateLb.font = LCFont(12);
  127. _userInvitationEarningsDateLb.textColor = HexColorFromRGB(0x999999);
  128. _userInvitationEarningsDateLb.textAlignment = NSTextAlignmentLeft;
  129. _userInvitationEarningsDateLb.text = @"*****";
  130. /**
  131. *抗拉伸 setContentHuggingPriority(值越高,越不容易拉伸)
  132. */
  133. [_userInvitationEarningsDateLb setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
  134. /**
  135. *抗压缩 setContentCompressionResistancePriority(值越高,越不容易压缩)
  136. **/
  137. [_userInvitationEarningsDateLb setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
  138. }
  139. return _userInvitationEarningsDateLb;
  140. }
  141. - (UILabel *)userInvitationEarningsDescLb{
  142. if (!_userInvitationEarningsDescLb) {
  143. _userInvitationEarningsDescLb = [[UILabel alloc]init];
  144. _userInvitationEarningsDescLb.font = LCFont(13);
  145. _userInvitationEarningsDescLb.textColor = HexColorFromRGB(0x333333);
  146. _userInvitationEarningsDescLb.textAlignment = NSTextAlignmentRight;
  147. _userInvitationEarningsDescLb.text = @"*****";
  148. /**
  149. *抗拉伸 setContentHuggingPriority(值越高,越不容易拉伸)
  150. */
  151. [_userInvitationEarningsDescLb setContentHuggingPriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];
  152. /**
  153. *抗压缩 setContentCompressionResistancePriority(值越高,越不容易压缩)
  154. **/
  155. [_userInvitationEarningsDescLb setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];
  156. }
  157. return _userInvitationEarningsDescLb;
  158. }
  159. - (UILabel *)userInvitationEarningsAmountLb{
  160. if (!_userInvitationEarningsAmountLb) {
  161. _userInvitationEarningsAmountLb = [[UILabel alloc]init];
  162. _userInvitationEarningsAmountLb.font = LCFont(16);
  163. _userInvitationEarningsAmountLb.textColor = HexColorFromRGB(0x333333);
  164. _userInvitationEarningsAmountLb.textAlignment = NSTextAlignmentRight;
  165. _userInvitationEarningsAmountLb.text = @"****";
  166. /**
  167. *抗拉伸 setContentHuggingPriority(值越高,越不容易拉伸)
  168. */
  169. [_userInvitationEarningsAmountLb setContentHuggingPriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];
  170. /**
  171. *抗压缩 setContentCompressionResistancePriority(值越高,越不容易压缩)
  172. **/
  173. [_userInvitationEarningsAmountLb setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];
  174. }
  175. return _userInvitationEarningsAmountLb;
  176. }
  177. @end