// // YMMemberRenewalItemCell.m // MSYOUPAI // // Created by YoMi on 2024/2/27. // Copyright © 2024 MS. All rights reserved. // #import "YMMemberRenewalItemCell.h" #import "YMMemberRenewalItemCellViewModel.h" @interface YMMemberRenewalItemCell() /// ViewModel @property (nonatomic, strong) YMMemberRenewalItemCellViewModel *viewModel; /// 基础视图 @property (nonatomic, strong) UIView *baseView; /// 渐变视图 @property (nonatomic, strong) UIImageView *gradientView; /// 图标 @property (nonatomic, strong) UIImageView *itemIcon; /// 续费项目名称标签 @property (nonatomic, strong) UILabel *renewalItemNameLb; /// 续费项目钱符号标签 @property (nonatomic, strong) UILabel *renewalItemMoneySymbolLb; /// 续费项目金额标签 @property (nonatomic, strong) UILabel *renewalItemAmountLb; /// 续费项目原价标签 @property (nonatomic, strong) UILabel *renewalItemOriginalPriceLb; /// 节省金额标签 @property (nonatomic, strong) UILabel *amountSavingsPriceLb; /// 选中标签 @property (nonatomic, strong) UIImageView *selectedImgv; @end @implementation YMMemberRenewalItemCell - (void)setSelected:(BOOL)selected{ [super setSelected:selected]; //self.gradientView.image = selected ? ImageByName(@"ym_member_center_renew_item_bg_selected") : ImageByName(@"ym_member_center_renew_item_bg_normal"); NSArray *colors; if (selected) { colors = @[HexColorFromRGB(0xFFFFFF), HexColorFromRGB(0xFFFFFF)]; } else { colors = @[HexColorFromRGB(0xFFFFFF), HexColorFromRGB(0xFFE7D8)]; } NSArray *location = @[@(0), @(1)]; [_gradientView ym_setGradientBackgroundWithColors:colors locations:location startPoint:CGPointMake(0, 0) endPoint:CGPointMake(0, 1)]; //self.baseView.backgroundColor = selected ? UIColorFromRGB(0xFFFFFF) : HexColorFromRGB(0xF2F5FF); self.baseView.layer.borderWidth = selected ? 2 : 0; } - (void)ym_setupViews{ self.contentView.backgroundColor = UIColor.clearColor; self.backgroundColor = UIColor.clearColor; [self.contentView addSubview:self.baseView]; [self.baseView addSubview:self.gradientView]; [self.baseView addSubview:self.itemIcon]; [self.baseView addSubview:self.renewalItemNameLb]; [self.baseView addSubview:self.renewalItemMoneySymbolLb]; [self.baseView addSubview:self.renewalItemAmountLb]; [self.baseView addSubview:self.renewalItemOriginalPriceLb]; [self.baseView addSubview:self.amountSavingsPriceLb]; [self.baseView addSubview:self.selectedImgv]; [self setNeedsUpdateConstraints]; [self updateConstraintsIfNeeded]; } - (void)updateConstraints { [self.baseView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.contentView); make.left.equalTo(self.contentView); make.right.equalTo(self.contentView); make.bottom.equalTo(self.contentView); }]; [self.gradientView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.baseView); make.left.equalTo(self.baseView); make.right.equalTo(self.baseView); make.bottom.equalTo(self.baseView); }]; [self.renewalItemNameLb mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.baseView).offset(adapt(20)); make.centerX.equalTo(self.baseView).offset(adapt(11)); }]; [self.itemIcon mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(self.renewalItemNameLb); make.right.equalTo(self.renewalItemNameLb.mas_left).offset(adapt(-5)); make.width.height.mas_equalTo(adapt(16)); }]; [self.renewalItemAmountLb mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.baseView.mas_centerX); make.top.equalTo(self.renewalItemNameLb.mas_bottom).offset(adapt(5)); }]; [self.renewalItemOriginalPriceLb mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.baseView.mas_centerX); make.top.equalTo(self.renewalItemAmountLb.mas_bottom).offset(adapt(4)); }]; [self.amountSavingsPriceLb mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.renewalItemOriginalPriceLb.mas_bottom).offset(adapt(4)); make.centerX.equalTo(self.baseView); }]; [self.selectedImgv mas_makeConstraints:^(MASConstraintMaker *make) { make.right.bottom.equalTo(self.baseView); make.width.height.mas_equalTo(adapt(22)); }]; [super updateConstraints]; } - (void)ym_bindViewModel:(YMMemberRenewalItemCellViewModel*)viewModel{ if (!viewModel) { return; } _viewModel = viewModel; self.renewalItemNameLb.text = self.viewModel.renewalItemName; NSString *renewalItemAmountStr = stringFormat(@"¥%.01f", (CGFloat)(self.viewModel.renewalItemAmount)); NSMutableAttributedString *renewalItemAmountAttributed = [[NSMutableAttributedString alloc]initWithString:renewalItemAmountStr]; renewalItemAmountAttributed.yy_font = LCBoldFont(28); renewalItemAmountAttributed.yy_color = rgba(140, 54, 37, 1); renewalItemAmountAttributed.yy_alignment = NSTextAlignmentCenter; [renewalItemAmountAttributed yy_setFont:LCBoldFont(16) range:[renewalItemAmountStr rangeOfString:@"¥"]]; self.renewalItemAmountLb.attributedText = renewalItemAmountAttributed; self.renewalItemOriginalPriceLb.attributedText = self.viewModel.renewalItemOriginalPriceAttributed; self.amountSavingsPriceLb.text = self.viewModel.amountSavingsPrice; } - (UIView *)baseView{ if (!_baseView) { _baseView = [[UIView alloc]init]; _baseView.backgroundColor = HexColorFromRGB(0xF2F5FF); _baseView.layer.borderColor = rgba(176, 86, 68, 1).CGColor; _baseView.layer.borderWidth = 0; _baseView.layer.cornerRadius = adapt(16); _baseView.layer.masksToBounds = YES; } return _baseView; } - (UIImageView *)itemIcon{ if (!_itemIcon) { _itemIcon = [[UIImageView alloc] init]; _itemIcon.image = ImageByName(@"ym_member_center_renew_item_icon"); } return _itemIcon; } - (UIImageView *)gradientView{ if (!_gradientView) { _gradientView = [[UIImageView alloc] init]; _gradientView.hidden = YES; //_gradientView.image = ImageByName(@"ym_member_center_renew_item_bg_normal"); _gradientView.layer.borderWidth = 1; _gradientView.layer.borderColor = [UIColor clearColor].CGColor; _gradientView.layer.cornerRadius = adapt(8); _gradientView.layer.masksToBounds = YES; NSArray *colors = @[HexColorFromRGB(0xFFFFFF), HexColorFromRGB(0xFFE7D8)]; NSArray *location = @[@(0), @(1)]; [_gradientView ym_setGradientBackgroundWithColors:colors locations:location startPoint:CGPointMake(0, 0) endPoint:CGPointMake(0, 1)]; } return _gradientView; } - (UILabel *)renewalItemNameLb{ if (!_renewalItemNameLb) { _renewalItemNameLb = [[UILabel alloc]init]; _renewalItemNameLb.font = LCBoldFont(13); _renewalItemNameLb.textColor = HexColorFromRGB(0x333333); _renewalItemNameLb.textAlignment = NSTextAlignmentCenter; _renewalItemNameLb.text = @"******"; } return _renewalItemNameLb; } - (UILabel *)renewalItemAmountLb{ if (!_renewalItemAmountLb) { _renewalItemAmountLb = [[UILabel alloc]init]; _renewalItemAmountLb.font = LCBoldFont(28); _renewalItemAmountLb.textColor = rgba(101, 50, 36, 1); _renewalItemAmountLb.textAlignment = NSTextAlignmentCenter; _renewalItemAmountLb.text = @"¥******"; } return _renewalItemAmountLb; } - (UILabel *)renewalItemOriginalPriceLb{ if (!_renewalItemOriginalPriceLb) { _renewalItemOriginalPriceLb = [[UILabel alloc]init]; _renewalItemOriginalPriceLb.font = LCFont(9); _renewalItemOriginalPriceLb.textColor = HexColorFromRGB(0xEFEFFB); _renewalItemOriginalPriceLb.textAlignment = NSTextAlignmentCenter; _renewalItemOriginalPriceLb.text = @"原价****"; } return _renewalItemOriginalPriceLb; } - (UILabel *)amountSavingsPriceLb{ if (!_amountSavingsPriceLb) { _amountSavingsPriceLb = [[UILabel alloc]init]; _amountSavingsPriceLb.font = LCFont(10); _amountSavingsPriceLb.textColor = rgba(101, 50, 36, 1); _amountSavingsPriceLb.textAlignment = NSTextAlignmentCenter; _amountSavingsPriceLb.text = @"立省***元"; _amountSavingsPriceLb.backgroundColor = HexColorFromRGBA(0xFFFFFF, 0); } return _amountSavingsPriceLb; } - (UIImageView *)selectedImgv { if (!_selectedImgv) { _selectedImgv = [[UIImageView alloc] init]; _selectedImgv.hidden = YES; _selectedImgv.image = ImageByName(@"ym_member_center_selected_mark"); } return _selectedImgv; } @end