// // YMMineOpenMembershipView.m // MSYOUPAI // // Created by YoMi on 2024/2/15. // Copyright © 2024 MS. All rights reserved. // #import "YMMineOpenMembershipView.h" #import "YMMineViewModel.h" @interface YMMineOpenMembershipView () /// 我的VM @property (nonatomic, strong) YMMineViewModel *viewModel; /// 开通会员渐变一视图 @property (nonatomic, strong) UIImageView *openMembershipGradientView; /// 开通会员提示标签 @property (nonatomic, strong) UILabel *openMembershipTipsLb; /// 开通会员箭头视图 @property (nonatomic, strong) UIImageView *openMembershipArrowView; /// 开通会员背景视图 @property (nonatomic, strong) UIImageView *openMembershipBgView; /// 开通会员图标视图 @property (nonatomic, strong) UIImageView *openMembershipIconView; /// 开通会员标题标签 @property (nonatomic, strong) UILabel *openMembershipTitleLb; @end @implementation YMMineOpenMembershipView - (void)ym_setupViews{ [self addSubview:self.openMembershipGradientView]; [self.openMembershipGradientView addSubview:self.openMembershipTipsLb]; [self.openMembershipGradientView addSubview:self.openMembershipArrowView]; [self.openMembershipGradientView addSubview:self.openMembershipTitleLb]; //[self addSubview:self.openMembershipBgView]; //[self.openMembershipBgView addSubview:self.openMembershipIconView]; //[self.openMembershipBgView addSubview:self.openMembershipTitleLb]; [self setNeedsUpdateConstraints]; [self updateConstraintsIfNeeded]; } - (void)updateConstraints{ [self.openMembershipGradientView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self).offset(adapt(0)); make.left.equalTo(self).offset(adapt(15)); make.right.equalTo(self).offset(adapt(-15)); make.bottom.equalTo(self).offset(adapt(-0)); }]; [self.openMembershipTipsLb mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.openMembershipGradientView.mas_centerY); make.right.equalTo(self.openMembershipArrowView.mas_left).offset(adapt(-15)); make.height.mas_equalTo(adapt(11)); }]; [self.openMembershipArrowView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.openMembershipGradientView.mas_centerY); make.right.equalTo(self.openMembershipGradientView).offset(-10); make.width.height.mas_equalTo(20); }]; // [self.openMembershipBgView mas_makeConstraints:^(MASConstraintMaker *make) { // make.centerY.equalTo(self.openMembershipGradientView.mas_centerY); // make.left.equalTo(self.openMembershipGradientView.mas_left); // make.width.mas_equalTo(adapt(130)); // make.height.mas_equalTo(adapt(45)); // }]; // // [self.openMembershipIconView mas_makeConstraints:^(MASConstraintMaker *make) { // make.centerY.equalTo(self.openMembershipBgView.mas_centerY); // make.left.equalTo(self.openMembershipBgView).offset(adapt(15)); // make.width.mas_equalTo(adapt(35)); // make.height.mas_equalTo(adapt(27)); // }]; [self.openMembershipTitleLb mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.openMembershipGradientView.mas_left).offset(adapt(50)); make.centerY.equalTo(self.openMembershipGradientView.mas_centerY); }]; [super updateConstraints]; } - (void)ym_bindViewModel:(YMMineViewModel *)viewModel{ if (!viewModel) { return; } _viewModel = viewModel; @weakify(self) [[[[RACObserve(self.viewModel, isVIP) distinctUntilChanged] deliverOnMainThread] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(NSNumber * isVIP) { @strongify(self) if ([isVIP boolValue]) { self.openMembershipTitleLb.text = @"续费"; } else { self.openMembershipTitleLb.text = @"开通会员"; } }]; RAC(self.openMembershipTipsLb, text) = RACObserve(self.viewModel, openMembershipTips); } - (UIImageView *)openMembershipGradientView{ if (!_openMembershipGradientView) { _openMembershipGradientView = [[UIImageView alloc]init]; _openMembershipGradientView.image = ImageByName(@"ym_mine_my_member_bg"); _openMembershipGradientView.userInteractionEnabled = YES; WS(weakSelf) UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; [_openMembershipGradientView addGestureRecognizer:tap]; [[[tap rac_gestureSignal] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) { [weakSelf.viewModel gotoMemberCenter]; }]; } return _openMembershipGradientView; } - (UILabel *)openMembershipTipsLb{ if (!_openMembershipTipsLb) { _openMembershipTipsLb = [[UILabel alloc]init]; _openMembershipTipsLb.font = LCFont(10); _openMembershipTipsLb.textColor = UIColor.blackColor; _openMembershipTipsLb.textAlignment = NSTextAlignmentRight; _openMembershipTipsLb.text = @"查看开通会员10大权益"; } return _openMembershipTipsLb; } - (UIImageView *)openMembershipArrowView{ if (!_openMembershipArrowView) { _openMembershipArrowView = [[UIImageView alloc]init]; _openMembershipArrowView.image = ImageByName(@"ym_mine_next_arrow_icon"); } return _openMembershipArrowView; } - (UIImageView *)openMembershipBgView{ if (!_openMembershipBgView) { _openMembershipBgView = [[UIImageView alloc]init]; //_openMembershipBgView.image = ImageByName(@"ym_mine_open_membership_bg"); _openMembershipBgView.userInteractionEnabled = YES; WS(weakSelf) UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; [_openMembershipBgView addGestureRecognizer:tap]; [[[tap rac_gestureSignal] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) { [weakSelf.viewModel gotoMemberCenter]; }]; } return _openMembershipBgView; } - (UILabel *)openMembershipTitleLb{ if (!_openMembershipTitleLb) { _openMembershipTitleLb = [[UILabel alloc]init]; _openMembershipTitleLb.font = LCFont(14); _openMembershipTitleLb.textColor = UIColor.blackColor; _openMembershipTitleLb.textAlignment = NSTextAlignmentLeft; _openMembershipTitleLb.text = @"开通会员"; } return _openMembershipTitleLb; } - (UIImageView *)openMembershipIconView{ if (!_openMembershipIconView) { _openMembershipIconView = [[UIImageView alloc]init]; _openMembershipIconView.hidden = YES; _openMembershipIconView.image = ImageByName(@"ym_mine_open_membership_Icon"); } return _openMembershipIconView; } @end