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