YMMineOpenMembershipView.m 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. //
  2. // YMMineOpenMembershipView.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/2/15.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMMineOpenMembershipView.h"
  9. #import "YMMineViewModel.h"
  10. @interface YMMineOpenMembershipView ()
  11. /// 我的VM
  12. @property (nonatomic, strong) YMMineViewModel *viewModel;
  13. /// 开通会员渐变一视图
  14. @property (nonatomic, strong) UIImageView *openMembershipGradientView;
  15. /// 开通会员提示标签
  16. @property (nonatomic, strong) UILabel *openMembershipTipsLb;
  17. /// 开通会员箭头视图
  18. @property (nonatomic, strong) UIImageView *openMembershipArrowView;
  19. /// 开通会员背景视图
  20. @property (nonatomic, strong) UIImageView *openMembershipBgView;
  21. /// 开通会员图标视图
  22. @property (nonatomic, strong) UIImageView *openMembershipIconView;
  23. /// 开通会员标题标签
  24. @property (nonatomic, strong) UILabel *openMembershipTitleLb;
  25. @end
  26. @implementation YMMineOpenMembershipView
  27. - (void)ym_setupViews{
  28. [self addSubview:self.openMembershipGradientView];
  29. [self.openMembershipGradientView addSubview:self.openMembershipTipsLb];
  30. [self.openMembershipGradientView addSubview:self.openMembershipArrowView];
  31. [self.openMembershipGradientView addSubview:self.openMembershipTitleLb];
  32. //[self addSubview:self.openMembershipBgView];
  33. //[self.openMembershipBgView addSubview:self.openMembershipIconView];
  34. //[self.openMembershipBgView addSubview:self.openMembershipTitleLb];
  35. [self setNeedsUpdateConstraints];
  36. [self updateConstraintsIfNeeded];
  37. }
  38. - (void)updateConstraints{
  39. [self.openMembershipGradientView mas_makeConstraints:^(MASConstraintMaker *make) {
  40. make.top.equalTo(self).offset(adapt(0));
  41. make.left.equalTo(self).offset(adapt(15));
  42. make.right.equalTo(self).offset(adapt(-15));
  43. make.bottom.equalTo(self).offset(adapt(-0));
  44. }];
  45. [self.openMembershipTipsLb mas_makeConstraints:^(MASConstraintMaker *make) {
  46. make.centerY.equalTo(self.openMembershipGradientView.mas_centerY);
  47. make.right.equalTo(self.openMembershipArrowView.mas_left).offset(adapt(-15));
  48. make.height.mas_equalTo(adapt(11));
  49. }];
  50. [self.openMembershipArrowView mas_makeConstraints:^(MASConstraintMaker *make) {
  51. make.centerY.equalTo(self.openMembershipGradientView.mas_centerY);
  52. make.right.equalTo(self.openMembershipGradientView).offset(-10);
  53. make.width.height.mas_equalTo(20);
  54. }];
  55. // [self.openMembershipBgView mas_makeConstraints:^(MASConstraintMaker *make) {
  56. // make.centerY.equalTo(self.openMembershipGradientView.mas_centerY);
  57. // make.left.equalTo(self.openMembershipGradientView.mas_left);
  58. // make.width.mas_equalTo(adapt(130));
  59. // make.height.mas_equalTo(adapt(45));
  60. // }];
  61. //
  62. // [self.openMembershipIconView mas_makeConstraints:^(MASConstraintMaker *make) {
  63. // make.centerY.equalTo(self.openMembershipBgView.mas_centerY);
  64. // make.left.equalTo(self.openMembershipBgView).offset(adapt(15));
  65. // make.width.mas_equalTo(adapt(35));
  66. // make.height.mas_equalTo(adapt(27));
  67. // }];
  68. [self.openMembershipTitleLb mas_makeConstraints:^(MASConstraintMaker *make) {
  69. make.left.equalTo(self.openMembershipGradientView.mas_left).offset(adapt(50));
  70. make.centerY.equalTo(self.openMembershipGradientView.mas_centerY);
  71. }];
  72. [super updateConstraints];
  73. }
  74. - (void)ym_bindViewModel:(YMMineViewModel *)viewModel{
  75. if (!viewModel) {
  76. return;
  77. }
  78. _viewModel = viewModel;
  79. @weakify(self)
  80. [[[[RACObserve(self.viewModel, isVIP) distinctUntilChanged] deliverOnMainThread] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(NSNumber * isVIP) {
  81. @strongify(self)
  82. if ([isVIP boolValue]) {
  83. self.openMembershipTitleLb.text = @"续费";
  84. } else {
  85. self.openMembershipTitleLb.text = @"开通会员";
  86. }
  87. }];
  88. RAC(self.openMembershipTipsLb, text) = RACObserve(self.viewModel, openMembershipTips);
  89. }
  90. - (UIImageView *)openMembershipGradientView{
  91. if (!_openMembershipGradientView) {
  92. _openMembershipGradientView = [[UIImageView alloc]init];
  93. _openMembershipGradientView.image = ImageByName(@"ym_mine_my_member_bg");
  94. _openMembershipGradientView.userInteractionEnabled = YES;
  95. WS(weakSelf)
  96. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
  97. [_openMembershipGradientView addGestureRecognizer:tap];
  98. [[[tap rac_gestureSignal] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) {
  99. [weakSelf.viewModel gotoMemberCenter];
  100. }];
  101. }
  102. return _openMembershipGradientView;
  103. }
  104. - (UILabel *)openMembershipTipsLb{
  105. if (!_openMembershipTipsLb) {
  106. _openMembershipTipsLb = [[UILabel alloc]init];
  107. _openMembershipTipsLb.font = LCFont(10);
  108. _openMembershipTipsLb.textColor = UIColor.blackColor;
  109. _openMembershipTipsLb.textAlignment = NSTextAlignmentRight;
  110. _openMembershipTipsLb.text = @"查看开通会员10大权益";
  111. }
  112. return _openMembershipTipsLb;
  113. }
  114. - (UIImageView *)openMembershipArrowView{
  115. if (!_openMembershipArrowView) {
  116. _openMembershipArrowView = [[UIImageView alloc]init];
  117. _openMembershipArrowView.image = ImageByName(@"ym_mine_next_arrow_icon");
  118. }
  119. return _openMembershipArrowView;
  120. }
  121. - (UIImageView *)openMembershipBgView{
  122. if (!_openMembershipBgView) {
  123. _openMembershipBgView = [[UIImageView alloc]init];
  124. //_openMembershipBgView.image = ImageByName(@"ym_mine_open_membership_bg");
  125. _openMembershipBgView.userInteractionEnabled = YES;
  126. WS(weakSelf)
  127. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
  128. [_openMembershipBgView addGestureRecognizer:tap];
  129. [[[tap rac_gestureSignal] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) {
  130. [weakSelf.viewModel gotoMemberCenter];
  131. }];
  132. }
  133. return _openMembershipBgView;
  134. }
  135. - (UILabel *)openMembershipTitleLb{
  136. if (!_openMembershipTitleLb) {
  137. _openMembershipTitleLb = [[UILabel alloc]init];
  138. _openMembershipTitleLb.font = LCFont(14);
  139. _openMembershipTitleLb.textColor = UIColor.blackColor;
  140. _openMembershipTitleLb.textAlignment = NSTextAlignmentLeft;
  141. _openMembershipTitleLb.text = @"开通会员";
  142. }
  143. return _openMembershipTitleLb;
  144. }
  145. - (UIImageView *)openMembershipIconView{
  146. if (!_openMembershipIconView) {
  147. _openMembershipIconView = [[UIImageView alloc]init];
  148. _openMembershipIconView.hidden = YES;
  149. _openMembershipIconView.image = ImageByName(@"ym_mine_open_membership_Icon");
  150. }
  151. return _openMembershipIconView;
  152. }
  153. @end