123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- //
- // ASProductItemView.m
- // Asteria
- //
- // Created by iOS on 2023/5/17.
- //
- #import "ASProductItemView.h"
- @interface ASProductItemView ()
- @property (nonatomic, strong) UIImageView *imgV;
- @end
- @implementation ASProductItemView
- - (void)setModel:(ASProductBaseModel *)model {
- _model = model;
- [self.imgV sd_setImageWithURL:[NSURL URLWithString:model.img] placeholderImage:[UIImage imageNamed:@"product_defualtImg"]];
- self.titleLb.text = model.title;
- // self.hotLb.text = [NSString stringWithFormat:@"SOLD %@", model.sale_num];
-
- self.nowPriceLb.text = model.nowPrice;
- if ([model.oldPrice isEqualToString:@""] || [model.oldPrice isEqualToString:model.nowPrice]) {
- // [self.oldPriceLb setHidden:true];
- self.nowPriceLb.text = model.nowPrice;
- } else {
- // [self.oldPriceLb setHidden:false];
-
- CGRect rect1 = [model.nowPrice boundingRectWithSize:CGSizeMake(MAXFLOAT, 22) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont fontWithName:Rob_Bold size:14]} context:nil];
- CGRect rect2 = [model.oldPrice boundingRectWithSize:CGSizeMake(MAXFLOAT, 20) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont fontWithName:Rob_Regular size:12]} context:nil];
-
- NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ %@", model.nowPrice, model.oldPrice]];
- if (rect1.size.width + rect2.size.width + 5 > (KScreenWidth - 30)/2 - 20 - 24) {
- attStr = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@\n%@", model.nowPrice, model.oldPrice]];
- }
-
- [attStr addAttributes:@{
- NSFontAttributeName:[UIFont fontWithName:Rob_Regular size:12],
- NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle),
- NSStrikethroughColorAttributeName:Col_999,
- NSForegroundColorAttributeName:Col_999,
- } range:NSMakeRange(model.nowPrice.length + 1, model.oldPrice.length)];
-
- // CGRect rect = [attStr boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil];
-
-
-
- self.nowPriceLb.attributedText = attStr;
-
- // self.nowPriceLb.text = model.nowPrice;
- }
-
- }
- - (instancetype)initWithFrame:(CGRect)frame {
- self = [super initWithFrame:frame];
- if (self) {
- [self configSubV];
- self.clipsToBounds = true;
- }
- return self;
- }
- - (void) configSubV {
- self.layer.cornerRadius = 8;
- self.layer.masksToBounds = true;
- self.backgroundColor = _F5F5F5;
-
- [self addSubview:self.imgV];
- [self addSubview:self.titleLb];
- // [self addSubview:self.hotLb];
- [self addSubview: self.nowPriceLb];
- // [self addSubview: self.oldPriceLb];
- [self addSubview:self.addCartBt];
-
- [self.imgV mas_makeConstraints:^(MASConstraintMaker *make) {
- make.width.equalTo(self);
- make.height.equalTo(self.mas_width);
- make.top.leading.trailing.equalTo(self);
- }];
- [self.titleLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.imgV.mas_bottom).offset(10);
- make.leading.equalTo(self).offset(10);
- make.trailing.equalTo(self).offset(-10);
- }];
- // [self.hotLb mas_makeConstraints:^(MASConstraintMaker *make) {
- // make.leading.equalTo(self.titleLb);
- // make.top.equalTo(self.titleLb.mas_bottom).offset(7);
- // make.trailing.equalTo(self.titleLb);
- // make.height.equalTo(@14);
- // }];
- [self.nowPriceLb setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
- [self.nowPriceLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.leading.equalTo(self.titleLb);
- make.top.equalTo(self.titleLb.mas_bottom).offset(4);
- make.height.mas_equalTo(@34);
- make.right.mas_equalTo(-36);
- make.bottom.equalTo(self.mas_bottom).offset(-6);
- }];
-
- // [self.oldPriceLb mas_makeConstraints:^(MASConstraintMaker *make) {
- // make.bottom.equalTo(self.nowPriceLb);
- // make.leading.equalTo(self.nowPriceLb.mas_trailing).offset(4);
- // make.height.equalTo(@16);
- // }];
- [self.addCartBt mas_makeConstraints:^(MASConstraintMaker *make) {
- make.width.height.equalTo(@24);
- make.trailing.equalTo(self).offset(-10);
- make.bottom.equalTo(self).offset(-10);
- // make.leading.greaterThanOrEqualTo(self.oldPriceLb.mas_trailing).offset(8);
- }];
-
-
- }
- - (UIImageView *)imgV {
- if (!_imgV) {
- UIImageView *v = [[UIImageView alloc] init];
- v.contentMode = UIViewContentModeScaleToFill;
- _imgV = v;
- }
- return _imgV;
- }
- - (UILabel *)titleLb {
- if (!_titleLb) {
- UILabel *lb = [[UILabel alloc] init];
- lb.font = [UIFont fontWithName:Rob_Regular size:12];
- lb.textColor = [UIColor blackColor];
- lb.textAlignment = NSTextAlignmentLeft;
- lb.numberOfLines = 2;
- _titleLb = lb;
- }
- return _titleLb;
- }
- - (UILabel *)nowPriceLb {
- if (!_nowPriceLb) {
- UILabel *lb = [[UILabel alloc] init];
- lb.font = [UIFont fontWithName:Rob_Bold size:14];
- // lb.adjustsFontSizeToFitWidth = YES;
- lb.numberOfLines = 2;
- lb.textColor = [UIColor blackColor];
- lb.textAlignment = NSTextAlignmentLeft;
- _nowPriceLb = lb;
- }
- return _nowPriceLb;
- }
- - (UILabel *)oldPriceLb {
- if (!_oldPriceLb) {
- UILabel *lb = [[UILabel alloc] init];
- lb.font = [UIFont fontWithName:Rob_Regular size:12];
- lb.textColor = Col_999;
- lb.textAlignment = NSTextAlignmentLeft;
- _oldPriceLb = lb;
- }
- return _oldPriceLb;
- }
- - (UILabel *)hotLb {
- if (!_hotLb) {
- UILabel *lb = [[UILabel alloc] init];
- lb.font = [UIFont fontWithName:Rob_Regular size:12];
- lb.textColor = Col_666;
- lb.textAlignment = NSTextAlignmentLeft;
- _hotLb = lb;
- }
- return _hotLb;
- }
- -(UIButton *)addCartBt {
- if (!_addCartBt) {
- UIButton *bt = [UIButton buttonWithType:UIButtonTypeCustom];
- [bt setImage:[UIImage imageNamed:@"product_addCart"] forState:UIControlStateNormal];
- [bt addTarget:self action:@selector(addCartBtAction) forControlEvents:UIControlEventTouchUpInside];
- _addCartBt = bt;
- }
- return _addCartBt;
- }
- - (void)addCartBtAction {
- if (self.addCartBlock) {
- self.addCartBlock(self.model);
- }
- }
- @end
|