123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- //
- // 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
|