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