// // 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 *bgv; /// 开通会员提示标签 @property (nonatomic, strong) UILabel *tipsLb; /// 开通会员箭头视图 @property (nonatomic, strong) UIImageView *openMembershipArrowView; /// 开通会员背景视图 @property (nonatomic, strong) UIImageView *openMembershipBgView; /// 开通会员图标视图 @property (nonatomic, strong) UIImageView *iconImgv; /// 开通会员标题标签 @property (nonatomic, strong) UILabel *openMembershipTitleLb; /// 开通会员按钮 @property (nonatomic, strong) UIButton *openButn; @end @implementation YMMineOpenMembershipView - (void)ym_setupViews{ [self addSubview:self.bgv]; [self.bgv addSubview:self.iconImgv]; [self.bgv addSubview:self.tipsLb]; [self.bgv addSubview:self.openButn]; [self.bgv addSubview:self.openMembershipArrowView]; [self.bgv addSubview:self.openMembershipTitleLb]; [self setNeedsUpdateConstraints]; [self updateConstraintsIfNeeded]; } - (void)updateConstraints{ [self.bgv mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self).offset(adapt(20)); make.left.equalTo(self).offset(adapt(15)); make.right.equalTo(self).offset(adapt(-15)); make.bottom.equalTo(self).offset(adapt(-0)); make.height.mas_equalTo(adapt(34)); }]; [self.iconImgv mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.bgv.mas_centerY); make.left.equalTo(self.bgv.mas_left).offset(adapt(10)); }]; [self.tipsLb mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.bgv.mas_centerY); make.left.equalTo(self.iconImgv.mas_right).offset(adapt(10)); }]; [self.openButn mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.bgv.mas_centerY); make.right.equalTo(self.bgv).offset(-10); make.width.mas_equalTo(48); make.height.mas_equalTo(24); }]; [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.openButn setTitle:@"续费" forState:(UIControlStateNormal)]; } else { [self.openButn setTitle:@"开通" forState:(UIControlStateNormal)]; } }]; RAC(self.tipsLb, text) = RACObserve(self.viewModel, openMembershipTips); } - (UIImageView *)bgv{ if (!_bgv) { _bgv = [[UIImageView alloc]init]; //_openMembershipGradientView.image = ImageByName(@"ym_mine_my_member_bg"); _bgv.backgroundColor = rgba(254, 200, 91, 1); _bgv.userInteractionEnabled = YES; _bgv.layer.cornerRadius = adapt(12); _bgv.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner; _bgv.layer.masksToBounds = YES; WS(weakSelf) UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; [_bgv addGestureRecognizer:tap]; [[[tap rac_gestureSignal] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) { [weakSelf.viewModel gotoMemberCenter]; }]; } return _bgv; } - (UILabel *)tipsLb{ if (!_tipsLb) { _tipsLb = [[UILabel alloc]init]; _tipsLb.font = LCFont(10); _tipsLb.textColor = UIColor.whiteColor; _tipsLb.textAlignment = NSTextAlignmentLeft; _tipsLb.text = @"查看开通会员10大权益"; } return _tipsLb; } - (UIImageView *)openMembershipArrowView{ if (!_openMembershipArrowView) { _openMembershipArrowView = [[UIImageView alloc]init]; _openMembershipArrowView.hidden = YES; _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.hidden = YES; _openMembershipTitleLb.font = LCFont(14); _openMembershipTitleLb.textColor = UIColor.blackColor; _openMembershipTitleLb.textAlignment = NSTextAlignmentLeft; _openMembershipTitleLb.text = @"开通会员"; } return _openMembershipTitleLb; } - (UIButton *)openButn { if (!_openButn) { _openButn = [UIButton buttonWithType:UIButtonTypeCustom]; _openButn.titleLabel.font = LCFont(12); [_openButn setTitle:@"开通" forState:UIControlStateNormal]; [_openButn setTitleColor:rgba(144, 84, 13, 1) forState:(UIControlStateNormal)]; [_openButn setBackgroundImage:ImageByName(@"ym_mine_open_membership_butn_bg") forState:UIControlStateNormal]; WS(weakSelf) [[[_openButn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id x) { [weakSelf.viewModel gotoMemberCenter]; }]; } return _openButn; } - (UIImageView *)iconImgv{ if (!_iconImgv) { _iconImgv = [[UIImageView alloc]init]; _iconImgv.hidden = NO; _iconImgv.image = ImageByName(@"ym_mine_open_membership_Icon"); } return _iconImgv; } @end