// // RQVipTrainPriceCell.m // jiaPei // // Created by 张嵘 on 2023/1/17. // Copyright © 2023 JCZ. All rights reserved. // #import "RQVipTrainPriceCell.h" @interface RQVipTrainPriceCell () @property (nonatomic, readwrite, strong) RQVipTrainPriceItemViewModel *viewModel; @property (weak, nonatomic) IBOutlet UIImageView *myBgView; @property (weak, nonatomic) IBOutlet UIStackView *priceView; @property (weak, nonatomic) IBOutlet UILabel *nowPriceLabel; @property (weak, nonatomic) IBOutlet UILabel *myTitleLabel; @property (weak, nonatomic) IBOutlet QMUIButton *bottomBtn; @property (weak, nonatomic) IBOutlet UIImageView *saveMoneyLabelBgImageView; @property (weak, nonatomic) IBOutlet UIButton *recommendBtn; @property (weak, nonatomic) IBOutlet QMUIButton *btn1; @property (weak, nonatomic) IBOutlet QMUIButton *btn2; @property (weak, nonatomic) IBOutlet QMUIButton *hasActiveBtn; @end @implementation RQVipTrainPriceCell #pragma mark - PublicMethods + (instancetype)cellWithCollectionView:(UICollectionView *)collectionView forIndexPath:(NSIndexPath *)indexPath { static NSString *ID = @"RQVipTrainPriceCell"; [collectionView registerNib:[UINib nibWithNibName:ID bundle:nil] forCellWithReuseIdentifier:ID]; RQVipTrainPriceCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath]; if (!cell) cell = [self rq_viewFromXib]; return cell; } - (void)bindViewModel:(RQVipTrainPriceItemViewModel *)viewModel { _viewModel = viewModel; @weakify(self) _myTitleLabel.text = viewModel.typeModel.dictLabel; RAC(self.hasActiveBtn, hidden) = [[[RACSignal combineLatest:@[RACObserve(RQ_VIP_Module, activationModel), RACObserve(viewModel, isSelect)] reduce:^id(RQActivationModel *activationModel, NSNumber *isSelect) { @strongify(self) if (RQ_VIP_Module.activationModel.isActive == 1) { self.myBgView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) { graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FF7336"]; graColor.toColor = [UIColor qmui_colorWithHexString:@"#FE5437"]; graColor.type = QQGradualChangeTypeLeftToRight; } QQCorner:^(QQCorner *corner) { corner.radius = QQRadiusMake(10, 25, 10, 10); corner.borderColor = [UIColor qmui_colorWithHexString:@"#FFDAAB"]; corner.borderWidth = 2; corner.borderPosition = QMUIImageBorderPositionTop|QMUIImageBorderPositionLeft|QMUIImageBorderPositionBottom|QMUIImageBorderPositionRight; } size:self.myBgView.bounds.size cornerRadius:QQRadiusMake(10, 25, 10, 10)]; self.saveMoneyLabelBgImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) { graColor.fromColor = [UIColor qmui_colorWithHexString:@"#E83C2C"]; graColor.toColor = [UIColor qmui_colorWithHexString:@"#F14B32"]; graColor.type = QQGradualChangeTypeLeftToRight; } QQCorner:^(QQCorner *corner) { corner.radius = QQRadiusMake(0, 0, 10, 10); corner.borderColor = [UIColor qmui_colorWithHexString:@"#FFDAAB"]; corner.borderWidth = 2; corner.borderPosition = QMUIImageBorderPositionLeft|QMUIImageBorderPositionBottom|QMUIImageBorderPositionRight; } size:self.saveMoneyLabelBgImageView.bounds.size cornerRadius:QQRadiusMake(0, 0, 10, 10)]; self.myTitleLabel.textColor = UIColor.whiteColor; [self.btn1 setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; [self.btn2 setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; [self.bottomBtn setTitleNormal:@"以下套餐包含各科目VIP增值服务"]; [self.bottomBtn setTitleColor:RQColorFromHexString(@"#FFECD4") forState:UIControlStateNormal]; self.nowPriceLabel.textColor = UIColor.clearColor; [self.bottomBtn setImage:RQImageNamed(@"以下套餐黄") forState:UIControlStateNormal]; } else { if (viewModel.isSelect) { self.myBgView.image = [UIImage imageWithQQCorner:^(QQCorner *corner) { corner.radius = QQRadiusMake(10, 25, 10, 10); corner.borderColor = [UIColor qmui_colorWithHexString:@"#FA6E52"]; corner.borderWidth = 4; corner.fillColor = [UIColor qmui_colorWithHexString:@"#FFEEE6"]; } size:self.myBgView.bounds.size]; self.saveMoneyLabelBgImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) { graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FA6E52"]; graColor.toColor = [UIColor qmui_colorWithHexString:@"#F5834F"]; graColor.type = QQGradualChangeTypeLeftToRight; } QQCorner:^(QQCorner *corner) { corner.radius = QQRadiusMake(0, 0, 10, 10); corner.borderColor = [UIColor qmui_colorWithHexString:@"#FA6E52"]; corner.borderWidth = 4; corner.borderPosition = QMUIImageBorderPositionLeft|QMUIImageBorderPositionBottom|QMUIImageBorderPositionRight; } size:self.saveMoneyLabelBgImageView.bounds.size cornerRadius:QQRadiusMake(0, 0, 10, 10)]; [self.bottomBtn setTitleColor:RQColorFromHexString(@"#FFFFFF") forState:UIControlStateNormal]; [self.bottomBtn setImage:RQImageNamed(@"以下套餐白") forState:UIControlStateNormal]; } else { self.myBgView.image = [UIImage imageWithQQCorner:^(QQCorner *corner) { corner.radius = QQRadiusMake(10, 25, 10, 10); corner.borderColor = [UIColor qmui_colorWithHexString:@"#D9D9D9"]; corner.borderWidth = 2; corner.fillColor = [UIColor qmui_colorWithHexString:@"#FFFFFF"]; } size:self.myBgView.bounds.size]; self.saveMoneyLabelBgImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) { graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FFE9DC"]; graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFE9DC"]; graColor.type = QQGradualChangeTypeLeftToRight; } QQCorner:^(QQCorner *corner) { corner.radius = QQRadiusMake(0, 0, 10, 10); corner.borderColor = [UIColor qmui_colorWithHexString:@"#D9D9D9"]; corner.borderWidth = 2; corner.borderPosition = QMUIImageBorderPositionLeft|QMUIImageBorderPositionBottom|QMUIImageBorderPositionRight; } size:self.saveMoneyLabelBgImageView.bounds.size cornerRadius:QQRadiusMake(0, 0, 10, 10)]; [self.bottomBtn setTitleColor:RQColorFromHexString(@"#654520") forState:UIControlStateNormal]; [self.bottomBtn setImage:RQImageNamed(@"以下套餐") forState:UIControlStateNormal]; } NSString *nowPriceStr; NSString *oldPriceStr; if (RQStringIsNotEmpty(viewModel.typeModel.dictValue) && [viewModel.typeModel.dictValue containsString:@","]) { nowPriceStr = [viewModel.typeModel.dictValue componentsSeparatedByString:@","].firstObject; if ([viewModel.typeModel.dictValue componentsSeparatedByString:@","].count >= 2) { oldPriceStr = [viewModel.typeModel.dictValue componentsSeparatedByString:@","][1]; } else { oldPriceStr = @""; } } else { nowPriceStr = viewModel.typeModel.dictValue; oldPriceStr = viewModel.typeModel.dictValue; } NSString *nowPrice = [NSString stringWithFormat:@"¥%@",nowPriceStr]; NSString *year = [NSString stringWithFormat:[viewModel.typeModel.dictLabel isEqualToString:@"理论实操计时"]? @"/长期" : @"/1年"]; NSString *price = [NSString stringWithFormat:@"%@%@",nowPrice,year]; NSMutableAttributedString *nowPriceAttrStr = [[NSMutableAttributedString alloc] initWithString:price]; [nowPriceAttrStr addAttribute:NSFontAttributeName value:RQSemiboldFont(32) range:[price rangeOfString:nowPrice]]; [nowPriceAttrStr addAttribute:NSFontAttributeName value:RQRegularFont_15 range:[price rangeOfString:year]]; [nowPriceAttrStr addAttribute:NSForegroundColorAttributeName value:[UIColor qmui_colorWithHexString:viewModel.isSelect? @"#EE2A2C" : @"#654520"] range:[price rangeOfString:nowPrice]]; [nowPriceAttrStr addAttribute:NSForegroundColorAttributeName value:[UIColor qmui_colorWithHexString:viewModel.isSelect? @"#EE2A2C" : @"#654520"] range:[price rangeOfString:year]]; self.nowPriceLabel.attributedText = nowPriceAttrStr; self.myTitleLabel.textColor = [UIColor qmui_colorWithHexString:viewModel.isSelect? @"#49171A" : @"#654520"]; self.myTitleLabel.textColor = RQColorFromHexString(@"#49171A"); [self.btn1 setTitleColor:RQColorFromHexString(@"#654520") forState:UIControlStateNormal]; [self.btn2 setTitleColor:RQColorFromHexString(@"#654520") forState:UIControlStateNormal]; } return @(!(RQ_VIP_Module.activationModel.isActive == 1)); }] deliverOnMainThread] takeUntil:self.rac_prepareForReuseSignal]; self.recommendBtn.hidden = ![viewModel.typeModel.dictLabel containsString:@"+"] && ![viewModel.typeModel.dictLabel containsString:@"全"]; } #pragma mark - SystemMethods - (void)awakeFromNib { [super awakeFromNib]; self.myBgView.image = [UIImage imageWithQQCorner:^(QQCorner *corner) { corner.radius = QQRadiusMake(10, 25, 10, 10); corner.borderColor = [UIColor qmui_colorWithHexString:@"#D9D9D9"]; corner.borderWidth = 2; corner.fillColor = [UIColor qmui_colorWithHexString:@"#FFFFFF"]; } size:self.myBgView.bounds.size]; self.saveMoneyLabelBgImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) { graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FFE9DC"]; graColor.toColor = [UIColor qmui_colorWithHexString:@"#FFE9DC"]; graColor.type = QQGradualChangeTypeLeftToRight; } QQCorner:^(QQCorner *corner) { corner.radius = QQRadiusMake(0, 0, 10, 10); corner.borderColor = [UIColor qmui_colorWithHexString:@"#D9D9D9"]; corner.borderWidth = 2; corner.borderPosition = QMUIImageBorderPositionLeft|QMUIImageBorderPositionBottom|QMUIImageBorderPositionRight; } size:self.saveMoneyLabelBgImageView.bounds.size cornerRadius:QQRadiusMake(0, 0, 10, 10)]; [_recommendBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) { graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FD5237"]; graColor.toColor = [UIColor qmui_colorWithHexString:@"#E4302D"]; graColor.type = QQGradualChangeTypeLeftToRight; } size:_recommendBtn.bounds.size cornerRadius:QQRadiusMake(10, 2, 2, 10)] forState:UIControlStateNormal]; CGFloat radius = RQ_FIT_HORIZONTAL(34.f) / 2.f; [self.hasActiveBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) { graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FDD19F"]; graColor.toColor = [UIColor qmui_colorWithHexString:@"#FDDCB7"]; graColor.type = QQGradualChangeTypeLeftToRight; } size:CGSizeMake(RQ_FIT_HORIZONTAL(84.f), RQ_FIT_HORIZONTAL(34.f)) cornerRadius:QQRadiusMake(radius, radius, radius, 0)] forState:UIControlStateNormal]; _btn1.imagePosition = QMUIButtonImagePositionTop; _btn2.imagePosition = QMUIButtonImagePositionTop; _btn1.titleLabel.font = RQRegularFont_13; _btn2.titleLabel.font = RQRegularFont_13; self.bottomBtn.imagePosition = QMUIButtonImagePositionRight; self.bottomBtn.titleLabel.font = RQSemiboldFont(13); } @end