NYLIVipPriceCell.m 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. //
  2. // NYLIVipPriceCell.m
  3. // jiaPei
  4. //
  5. // Created by Ning.ge on 2025/2/7.
  6. // Copyright © 2025 JCZ. All rights reserved.
  7. //
  8. #import "NYLIVipPriceCell.h"
  9. @interface NYLIVipPriceCell ()
  10. @property (nonatomic, readwrite, strong) NYLIVipSinglePriceItemViewModel *viewModel;
  11. @property (weak, nonatomic) IBOutlet UIImageView *myBgView;
  12. @property (weak, nonatomic) IBOutlet UIStackView *priceView;
  13. @property (weak, nonatomic) IBOutlet UILabel *nowPriceLabel;
  14. @property (weak, nonatomic) IBOutlet UILabel *oldPriceLabel;
  15. @property (weak, nonatomic) IBOutlet UILabel *myTitleLabel;
  16. @property (weak, nonatomic) IBOutlet UILabel *saveMoneyLabel;
  17. @property (weak, nonatomic) IBOutlet UIImageView *saveMoneyLabelBgImageView;
  18. @property (weak, nonatomic) IBOutlet UIButton *recommendBtn;
  19. @end
  20. @implementation NYLIVipPriceCell
  21. #pragma mark - PublicMethods
  22. + (instancetype)cellWithCollectionView:(UICollectionView *)collectionView forIndexPath:(NSIndexPath *)indexPath {
  23. static NSString *ID = @"NYLIVipPriceCell";
  24. [collectionView registerNib:[UINib nibWithNibName:ID bundle:nil] forCellWithReuseIdentifier:ID];
  25. NYLIVipPriceCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
  26. if (!cell) cell = [self rq_viewFromXib];
  27. return cell;
  28. }
  29. - (void)bindViewModel:(NYLIVipSinglePriceItemViewModel *)viewModel {
  30. _viewModel = viewModel;
  31. @weakify(self)
  32. [[[RACObserve(viewModel, isSelect) takeUntil:self.rac_prepareForReuseSignal] distinctUntilChanged] subscribeNext:^(id _Nullable x) {
  33. @strongify(self)
  34. if (viewModel.isSelect) {
  35. self.myBgView.image = [UIImage imageWithQQCorner:^(QQCorner *corner) {
  36. corner.radius = QQRadiusMake(10, 25, 10, 10);
  37. corner.borderColor = [UIColor qmui_colorWithHexString:@"#498EF5"];
  38. corner.borderWidth = 4;
  39. corner.fillColor = [UIColor qmui_colorWithHexString:@"#E6F0FF"];
  40. } size:self.myBgView.bounds.size];
  41. self.saveMoneyLabelBgImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  42. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#4C99E0"];
  43. graColor.toColor = [UIColor qmui_colorWithHexString:@"#70B7F3"];
  44. graColor.type = QQGradualChangeTypeLeftToRight;
  45. } QQCorner:^(QQCorner *corner) {
  46. corner.radius = QQRadiusMake(0, 0, 10, 10);
  47. corner.borderColor = [UIColor qmui_colorWithHexString:@"#4C99E0"];
  48. corner.borderWidth = 4;
  49. corner.borderPosition = QMUIImageBorderPositionLeft|QMUIImageBorderPositionBottom|QMUIImageBorderPositionRight;
  50. } size:self.saveMoneyLabelBgImageView.bounds.size cornerRadius:QQRadiusMake(0, 0, 10, 10)];
  51. self.saveMoneyLabel.textColor = RQColorFromHexString(@"#FFFFFF");
  52. _nowPriceLabel.textColor = RQColorFromHexString(@"#EE2A2C");
  53. } else {
  54. self.myBgView.image = [UIImage imageWithQQCorner:^(QQCorner *corner) {
  55. corner.radius = QQRadiusMake(10, 25, 10, 10);
  56. corner.borderColor = [UIColor qmui_colorWithHexString:@"#D9D9D9"];
  57. corner.borderWidth = 2;
  58. corner.fillColor = [UIColor qmui_colorWithHexString:@"#FFFFFF"];
  59. } size:self.myBgView.bounds.size];
  60. self.saveMoneyLabelBgImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  61. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#E6F0FF"];
  62. graColor.toColor = [UIColor qmui_colorWithHexString:@"#E6F0FF"];
  63. graColor.type = QQGradualChangeTypeLeftToRight;
  64. } QQCorner:^(QQCorner *corner) {
  65. corner.radius = QQRadiusMake(0, 0, 10, 10);
  66. corner.borderColor = [UIColor qmui_colorWithHexString:@"#D9D9D9"];
  67. corner.borderWidth = 2;
  68. corner.borderPosition = QMUIImageBorderPositionLeft|QMUIImageBorderPositionBottom|QMUIImageBorderPositionRight;
  69. } size:self.saveMoneyLabelBgImageView.bounds.size cornerRadius:QQRadiusMake(0, 0, 10, 10)];
  70. self.saveMoneyLabel.textColor = RQColorFromHexString(@"#203C65");
  71. _nowPriceLabel.textColor = RQColorFromHexString(@"#203C65");
  72. }
  73. }];
  74. _myTitleLabel.text = viewModel.typeModel.dictLabel;
  75. NSString *nowPriceStr;
  76. NSString *oldPriceStr;
  77. if (RQStringIsNotEmpty(viewModel.typeModel.dictValue) && [viewModel.typeModel.dictValue containsString:@","]) {
  78. nowPriceStr = [viewModel.typeModel.dictValue componentsSeparatedByString:@","].firstObject;
  79. if ([viewModel.typeModel.dictValue componentsSeparatedByString:@","].count >= 2) {
  80. oldPriceStr = [viewModel.typeModel.dictValue componentsSeparatedByString:@","][1];
  81. } else {
  82. oldPriceStr = @"";
  83. }
  84. } else {
  85. nowPriceStr = viewModel.typeModel.dictValue;
  86. oldPriceStr = viewModel.typeModel.dictValue;
  87. }
  88. NSString *str = [NSString stringWithFormat:@"各科单独买¥%@元",oldPriceStr];
  89. NSDictionary *attrDic = @{
  90. NSStrikethroughStyleAttributeName: @(1),
  91. NSFontAttributeName : [UIFont systemFontOfSize:10],
  92. NSBaselineOffsetAttributeName : @(NSUnderlineStyleSingle)
  93. };
  94. NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:str attributes:attrDic];
  95. _oldPriceLabel.attributedText = attrStr;
  96. // _oldPriceLabel.hidden = [nowPriceStr isEqualToString:oldPriceStr];
  97. NSString *nowPrice = [NSString stringWithFormat:@"¥%@",nowPriceStr];
  98. NSString *year = [NSString stringWithFormat:@"/1年"];
  99. NSString *price = [NSString stringWithFormat:@"%@%@",nowPrice,year];
  100. NSMutableAttributedString *nowPriceAttrStr = [[NSMutableAttributedString alloc] initWithString:price];
  101. [nowPriceAttrStr addAttribute:NSFontAttributeName value:RQSemiboldFont(32) range:[price rangeOfString:nowPrice]];
  102. [nowPriceAttrStr addAttribute:NSFontAttributeName value:RQRegularFont_15 range:[price rangeOfString:year]];
  103. // [nowPriceAttrStr addAttribute:NSForegroundColorAttributeName value:[UIColor qmui_colorWithHexString:@"#D9D9D9"] range:[price rangeOfString:year]];
  104. _nowPriceLabel.attributedText = nowPriceAttrStr;
  105. self.recommendBtn.hidden = ![viewModel.typeModel.dictLabel containsString:@"科一科四特训包"];
  106. self.oldPriceLabel.hidden = ![viewModel.typeModel.dictLabel containsString:@"科一科四特训包"];
  107. }
  108. #pragma mark - SystemMethods
  109. - (void)awakeFromNib {
  110. [super awakeFromNib];
  111. self.myBgView.image = [UIImage imageWithQQCorner:^(QQCorner *corner) {
  112. corner.radius = QQRadiusMake(10, 25, 10, 10);
  113. corner.borderColor = [UIColor qmui_colorWithHexString:@"#D9D9D9"];
  114. corner.borderWidth = 2;
  115. corner.fillColor = [UIColor qmui_colorWithHexString:@"#FFFFFF"];
  116. } size:self.myBgView.bounds.size];
  117. self.saveMoneyLabelBgImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  118. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#E6F0FF"];
  119. graColor.toColor = [UIColor qmui_colorWithHexString:@"#E6F0FF"];
  120. graColor.type = QQGradualChangeTypeLeftToRight;
  121. } QQCorner:^(QQCorner *corner) {
  122. corner.radius = QQRadiusMake(0, 0, 10, 10);
  123. corner.borderColor = [UIColor qmui_colorWithHexString:@"#D9D9D9"];
  124. corner.borderWidth = 2;
  125. corner.borderPosition = QMUIImageBorderPositionLeft|QMUIImageBorderPositionBottom|QMUIImageBorderPositionRight;
  126. } size:self.saveMoneyLabelBgImageView.bounds.size cornerRadius:QQRadiusMake(0, 0, 10, 10)];
  127. [_recommendBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
  128. graColor.fromColor = [UIColor qmui_colorWithHexString:@"#498EF5"];
  129. graColor.toColor = [UIColor qmui_colorWithHexString:@"#4DA8E6"];
  130. graColor.type = QQGradualChangeTypeLeftToRight;
  131. } size:_recommendBtn.bounds.size cornerRadius:QQRadiusMake(10, 2, 2, 10)] forState:UIControlStateNormal];
  132. }
  133. @end