YMAccountBalancePayMethodCell.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. //
  2. // YMAccountBalancePayMethodCell.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/2/28.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMAccountBalancePayMethodCell.h"
  9. #import "YMPayMethodCellViewModel.h"
  10. @interface YMAccountBalancePayMethodCell()
  11. /// ViewModel
  12. @property (nonatomic, strong) YMPayMethodCellViewModel *viewModel;
  13. /// 基础视图
  14. @property (nonatomic, strong) UIView *baseView;
  15. /// 支付方式图标
  16. @property (nonatomic, strong) UIImageView *payMethodIcon;
  17. /// 支付方式标题标签
  18. @property (nonatomic, strong) UILabel *payMethodTitleLb;
  19. /// 选中图标
  20. @property (nonatomic, strong) UIImageView *selectedIcon;
  21. @end
  22. @implementation YMAccountBalancePayMethodCell
  23. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  24. [super setSelected:selected animated:animated];
  25. if (selected) {
  26. self.selectedIcon.image = ImageByName(@"ym_member_center_pay_selected_icon");
  27. } else {
  28. self.selectedIcon.image = ImageByName(@"ym_member_center_pay_normal_icon");
  29. }
  30. }
  31. - (void)ym_setupViews{
  32. self.contentView.backgroundColor = UIColor.clearColor;
  33. self.backgroundColor = UIColor.clearColor;
  34. [self.contentView addSubview:self.baseView];
  35. [self.baseView addSubview:self.payMethodIcon];
  36. [self.baseView addSubview:self.payMethodTitleLb];
  37. [self.baseView addSubview:self.selectedIcon];
  38. [self setNeedsUpdateConstraints];
  39. [self updateConstraintsIfNeeded];
  40. }
  41. - (void)updateConstraints {
  42. [self.baseView mas_makeConstraints:^(MASConstraintMaker *make) {
  43. make.top.equalTo(self.contentView);
  44. make.left.equalTo(self.contentView);
  45. make.right.equalTo(self.contentView);
  46. make.bottom.equalTo(self.contentView);
  47. }];
  48. [self.payMethodIcon mas_makeConstraints:^(MASConstraintMaker *make) {
  49. make.centerY.equalTo(self.baseView.mas_centerY);
  50. make.left.equalTo(self.baseView).offset(adapt(15));
  51. make.width.height.mas_equalTo(adapt(18));
  52. }];
  53. [self.payMethodTitleLb mas_makeConstraints:^(MASConstraintMaker *make) {
  54. make.centerY.equalTo(self.baseView.mas_centerY);
  55. make.left.equalTo(self.payMethodIcon.mas_right).offset(adapt(10));
  56. }];
  57. [self.selectedIcon mas_makeConstraints:^(MASConstraintMaker *make) {
  58. make.centerY.equalTo(self.baseView.mas_centerY);
  59. make.right.equalTo(self.baseView).offset(adapt(-15));
  60. make.width.height.mas_equalTo(adapt(20));
  61. }];
  62. [super updateConstraints];
  63. }
  64. - (void)ym_bindViewModel:(YMPayMethodCellViewModel*)viewModel{
  65. if (!viewModel) {
  66. return;
  67. }
  68. _viewModel = viewModel;
  69. self.payMethodIcon.image = ImageByName(self.viewModel.payIcon);
  70. self.payMethodTitleLb.text = self.viewModel.payTitle;
  71. }
  72. - (UIView *)baseView{
  73. if (!_baseView) {
  74. _baseView = [[UIView alloc]init];
  75. _baseView.backgroundColor = HexColorFromRGB(0xf6f6f6);
  76. _baseView.layer.cornerRadius = adapt(8);
  77. _baseView.layer.masksToBounds = YES;
  78. }
  79. return _baseView;
  80. }
  81. - (UIImageView *)payMethodIcon{
  82. if (!_payMethodIcon) {
  83. _payMethodIcon = [[UIImageView alloc]init];
  84. }
  85. return _payMethodIcon;
  86. }
  87. - (UILabel *)payMethodTitleLb{
  88. if (!_payMethodTitleLb) {
  89. _payMethodTitleLb = [[UILabel alloc]init];
  90. _payMethodTitleLb.font = LCFont(14);
  91. _payMethodTitleLb.textColor = HexColorFromRGB(0x333333);
  92. _payMethodTitleLb.textAlignment = NSTextAlignmentLeft;
  93. _payMethodTitleLb.text = @"******";
  94. }
  95. return _payMethodTitleLb;
  96. }
  97. - (UIImageView *)selectedIcon{
  98. if (!_selectedIcon) {
  99. _selectedIcon = [[UIImageView alloc]init];
  100. _selectedIcon.image = ImageByName(@"ym_member_center_pay_normal_icon");
  101. }
  102. return _selectedIcon;
  103. }
  104. @end