YMSettingCell.m 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. //
  2. // YMSettingCell.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/2/21.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMSettingCell.h"
  9. #import "YMSettingCellViewModel.h"
  10. @interface YMSettingCell ()
  11. /// 设置VM
  12. @property (nonatomic, strong) YMSettingCellViewModel *viewModel;
  13. /// 基础视图
  14. @property (nonatomic, strong) UIView *baseView;
  15. /// 设置标题标签
  16. @property (nonatomic, strong) UILabel *settingTitleLb;
  17. /// 设置详情标签
  18. @property (nonatomic, strong) UILabel *settingDetailLb;
  19. /// 设置内容标签
  20. @property (nonatomic, strong) UILabel *settingContentLb;
  21. /// 箭头图标
  22. @property (nonatomic, strong) UIImageView *arrowIcon;
  23. @end
  24. @implementation YMSettingCell
  25. - (void)awakeFromNib {
  26. [super awakeFromNib];
  27. // Initialization code
  28. }
  29. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  30. [super setSelected:selected animated:animated];
  31. // Configure the view for the selected state
  32. }
  33. - (void)ym_setupViews{
  34. [self.contentView addSubview:self.baseView];
  35. [self.baseView addSubview:self.settingTitleLb];
  36. [self.baseView addSubview:self.settingDetailLb];
  37. [self.baseView addSubview:self.settingContentLb];
  38. [self.baseView addSubview:self.arrowIcon];
  39. [self setNeedsUpdateConstraints];
  40. [self updateConstraintsIfNeeded];
  41. }
  42. - (void)updateConstraints{
  43. [self.baseView mas_makeConstraints:^(MASConstraintMaker *make) {
  44. make.top.equalTo(self.contentView);
  45. make.left.equalTo(self.contentView);
  46. make.right.equalTo(self.contentView);
  47. make.bottom.equalTo(self.contentView);
  48. }];
  49. [self.settingTitleLb mas_makeConstraints:^(MASConstraintMaker *make) {
  50. make.centerY.equalTo(self.baseView.mas_centerY);
  51. make.left.equalTo(self.baseView).offset(adapt(15));
  52. }];
  53. [self.settingDetailLb mas_makeConstraints:^(MASConstraintMaker *make) {
  54. make.centerY.equalTo(self.settingTitleLb.mas_centerY);
  55. make.left.equalTo(self.settingTitleLb.mas_right).offset(adapt(5));
  56. }];
  57. [self.settingContentLb mas_makeConstraints:^(MASConstraintMaker *make) {
  58. make.centerY.equalTo(self.settingTitleLb.mas_centerY);
  59. make.right.equalTo(self.arrowIcon.mas_left).offset(adapt(-10));
  60. }];
  61. [self.arrowIcon mas_makeConstraints:^(MASConstraintMaker *make) {
  62. make.centerY.equalTo(self.settingTitleLb.mas_centerY);
  63. make.right.equalTo(self).offset(adapt(-15));
  64. make.width.mas_equalTo(adapt(10));
  65. make.height.mas_equalTo(adapt(9));
  66. }];
  67. [super updateConstraints];
  68. }
  69. - (void)ym_bindViewModel:(YMSettingCellViewModel *)viewModel{
  70. if (!viewModel) {
  71. return;
  72. }
  73. _viewModel = viewModel;
  74. self.settingTitleLb.text = self.viewModel.settingTitle;
  75. self.settingDetailLb.text = self.viewModel.settingDetail;
  76. self.settingContentLb.text = self.viewModel.settingContent;
  77. }
  78. - (UIView *)baseView{
  79. if (!_baseView) {
  80. _baseView = [[UIView alloc]init];
  81. }
  82. return _baseView;
  83. }
  84. - (UILabel *)settingTitleLb{
  85. if (!_settingTitleLb) {
  86. _settingTitleLb = [[UILabel alloc]init];
  87. _settingTitleLb.font = LCFont(15);
  88. _settingTitleLb.textColor = HexColorFromRGB(0x333333);
  89. _settingTitleLb.textAlignment = NSTextAlignmentLeft;
  90. _settingTitleLb.text = @"功能";
  91. }
  92. return _settingTitleLb;
  93. }
  94. - (UILabel *)settingDetailLb{
  95. if (!_settingDetailLb) {
  96. _settingDetailLb = [[UILabel alloc]init];
  97. _settingDetailLb.font = LCFont(12);
  98. _settingDetailLb.textColor = HexColorFromRGB(0x9c9c9c);
  99. _settingDetailLb.textAlignment = NSTextAlignmentLeft;
  100. }
  101. return _settingDetailLb;
  102. }
  103. - (UILabel *)settingContentLb{
  104. if (!_settingContentLb) {
  105. _settingContentLb = [[UILabel alloc]init];
  106. _settingContentLb.font = LCFont(13);
  107. _settingContentLb.textColor = HexColorFromRGB(0x9c9c9c);
  108. _settingContentLb.textAlignment = NSTextAlignmentRight;
  109. }
  110. return _settingContentLb;
  111. }
  112. - (UIImageView *)arrowIcon{
  113. if (!_arrowIcon) {
  114. _arrowIcon = [[UIImageView alloc]init];
  115. _arrowIcon.image = ImageByName(@"ym_edit_profile_arrow_icon");
  116. }
  117. return _arrowIcon;
  118. }
  119. @end