// // HomeTableViewCell.m // TheoryNetwork // // Created by tederen on 2019/9/26. // Copyright © 2019 tederen. All rights reserved. // #import "HomeTableViewCell.h" #import "DocumentModel.h" #import "FLAnimatedImage.h" @interface HomeTableViewCell () @property (weak, nonatomic) IBOutlet UILabel *titleLabel; @property (weak, nonatomic) IBOutlet UILabel *buninessLabel; @property (weak, nonatomic) IBOutlet UILabel *checkLabel; @property (weak, nonatomic) IBOutlet UIImageView *firstImgVi; @property (weak, nonatomic) IBOutlet UIImageView *secondImgVi; @property (weak, nonatomic) IBOutlet UIImageView *lastImgVi; @property (weak, nonatomic) IBOutlet UILabel *authorLab; @property (weak, nonatomic) IBOutlet UILabel *refereeLab; @property (weak, nonatomic) IBOutlet UIImageView *eyeImgV; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *rconst; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *bconst; @end @implementation HomeTableViewCell - (void)awakeFromNib { [super awakeFromNib]; } + (instancetype)cellWithTableView:(UITableView *)tableView AndIndex:(NSInteger)index { NSLog(@"============================数组index%ld",(long)index); NSString *ID = @"HomeTableViewCell1"; switch (index) { case 1: ID = @"HomeTableViewCell1"; break; case 2: ID = @"HomeTableViewCell2"; break; default: ID = @"HomeTableViewCell3"; break; } HomeTableViewCell *cell = (HomeTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ID]; if (cell == nil || !cell) { NSLog(@"--------nil,%ld",index - 1); if (index == 0) { index = 1; } cell = [[[NSBundle mainBundle] loadNibNamed:@"HomeTableViewCell" owner:nil options:nil] objectAtIndex:(index - 1)]; } cell.selectionStyle = UITableViewCellSelectionStyleNone; return cell; } - (IBAction)deleteButtonClicked:(TDButton *)sender { if (self.buttonBlock) { self.buttonBlock(); } } - (void)loadCurrentItemModel:(Item *)model{ if (ISEmptyString(model.Title)) { _titleLabel.hidden = YES; }else{ _titleLabel.attributedText = [self setTitleStr:model.Title isTop:model.IsTop]; _titleLabel.lineBreakMode = NSLineBreakByTruncatingTail; } if (ISEmptyString(model.Source)) { self.bconst.constant = 0; _buninessLabel.hidden = YES; [self.eyeImgV mas_updateConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.titleLabel); }]; }else{ _buninessLabel.text = model.Source; } _checkLabel.text = [NSString stringWithFormat:@"%ld", (long)model.ReadCount]; if (!ISEmptyNumber(model.Author)) { _authorLab.hidden = NO; _authorLab.text = model.Author; } else { _authorLab.hidden = YES; self.rconst.constant = 0; [self.refereeLab mas_updateConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.titleLabel); }]; } _refereeLab.hidden = YES; if (model.ImageUrls.count >= 3) { if ([self isGifOrSwf:model.ImageUrls.firstObject]) { FLAnimatedImage * image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:model.ImageUrls.firstObject]]]; FLAnimatedImageView * imageV = [[FLAnimatedImageView alloc] init]; imageV.animatedImage = image; self.firstImgVi = imageV; }else{ [self.firstImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls.firstObject] placeholder:IMG(@"img_placeHolder")]; } if ([self isGifOrSwf:model.ImageUrls[1]]) { FLAnimatedImage * image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:model.ImageUrls[1]]]]; FLAnimatedImageView * imageV = [[FLAnimatedImageView alloc] init]; imageV.animatedImage = image; self.secondImgVi = imageV; }else{ [self.secondImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[1]] placeholder:IMG(@"img_placeHolder")]; } if ([self isGifOrSwf:model.ImageUrls[2]]) { FLAnimatedImage * image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:model.ImageUrls[2]]]]; FLAnimatedImageView * imageV = [[FLAnimatedImageView alloc] init]; imageV.animatedImage = image; self.lastImgVi = imageV; }else{ [self.lastImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[2]] placeholder:IMG(@"img_placeHolder")]; } // [self.secondImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[1]] placeholder:IMG(@"img_placeHolder")]; // [self.lastImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[2]] placeholder:IMG(@"img_placeHolder")]; self.firstImgVi.hidden = NO; self.lastImgVi.hidden = NO; self.secondImgVi.hidden = NO; } // else if (model.ImageUrls.count == 2) { // NSLog(@"%@",model.ImageUrls); // if ([model.ImageUrls.firstObject containsString:@"webp"]) { // [self.firstImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls.firstObject] placeholder:IMG(@"img_placeHolder")]; // }else{ // [self.firstImgVi sd_setImageWithURL: [NSURL URLWithString:model.ImageUrls.firstObject] placeholderImage:IMG(@"img_placeHolder")]; // } // // [self.secondImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[1]] placeholder:IMG(@"img_placeHolder")]; // self.firstImgVi.hidden = NO; // self.lastImgVi.hidden = YES; // self.secondImgVi.hidden = NO; // } else{ if ([self isGifOrSwf:model.ImageUrls.firstObject]) { FLAnimatedImage * image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:model.ImageUrls.firstObject]]]; FLAnimatedImageView * imageV = [[FLAnimatedImageView alloc] init]; imageV.animatedImage = image; self.firstImgVi = imageV; }else{ [self.firstImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls.firstObject] placeholder:IMG(@"img_placeHolder")]; } // [self.firstImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls.firstObject] placeholder:IMG(@"img_placeHolder")]; self.firstImgVi.hidden = NO; self.lastImgVi.hidden = YES; self.secondImgVi.hidden = YES; } } - (NSMutableAttributedString *)setTitleStr:(NSString *)text isTop:(BOOL)isTop { NSMutableAttributedString * mattStr = [[NSMutableAttributedString alloc] init]; // [mattStr addAttributes:@{NSFontAttributeName: [UIFont fontWithName:@"PingFang-SC-Regular" size:18],NSForegroundColorAttributeName: UIColorHex(000000)} range:NSMakeRange(0, text.length)]; // NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init]; // 行间距 // [style setLineSpacing:8]; // // 段落间距 // [style setParagraphSpacing:6]; // // 首行缩进 // [style setFirstLineHeadIndent:25]; // [mattStr addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, text.length)]; if (isTop) { NSTextAttachment *imageAtta = [[NSTextAttachment alloc] init]; imageAtta.bounds = CGRectMake(0, -2, 32, 15.5); imageAtta.image = [UIImage imageNamed:@"homeicon_setTop"]; NSAttributedString *attach = [NSAttributedString attributedStringWithAttachment:imageAtta]; [mattStr insertAttributedString:attach atIndex:0]; [mattStr appendAttributedString:[[NSAttributedString alloc] initWithString:@" "]]; [mattStr appendAttributedString:[[NSAttributedString alloc] initWithString:text]]; }else{ [mattStr appendAttributedString:[[NSAttributedString alloc] initWithString:text]]; } return mattStr; } - (BOOL)isGifOrSwf:(NSString *)imageStr { NSString * name = [[imageStr pathExtension] lowercaseString]; if ([name hasSuffix:@"gif"] || [name hasSuffix:@"swf"]) { return YES; }else{ return NO; } } @end