HomeTableViewCell.m 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. //
  2. // HomeTableViewCell.m
  3. // TheoryNetwork
  4. //
  5. // Created by tederen on 2019/9/26.
  6. // Copyright © 2019 tederen. All rights reserved.
  7. //
  8. #import "HomeTableViewCell.h"
  9. #import "DocumentModel.h"
  10. #import "FLAnimatedImage.h"
  11. @interface HomeTableViewCell ()
  12. @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
  13. @property (weak, nonatomic) IBOutlet UILabel *buninessLabel;
  14. @property (weak, nonatomic) IBOutlet UILabel *checkLabel;
  15. @property (weak, nonatomic) IBOutlet UIImageView *firstImgVi;
  16. @property (weak, nonatomic) IBOutlet UIImageView *secondImgVi;
  17. @property (weak, nonatomic) IBOutlet UIImageView *lastImgVi;
  18. @property (weak, nonatomic) IBOutlet UILabel *authorLab;
  19. @property (weak, nonatomic) IBOutlet UILabel *refereeLab;
  20. @property (weak, nonatomic) IBOutlet UIImageView *eyeImgV;
  21. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *rconst;
  22. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *bconst;
  23. @end
  24. @implementation HomeTableViewCell
  25. - (void)awakeFromNib {
  26. [super awakeFromNib];
  27. }
  28. + (instancetype)cellWithTableView:(UITableView *)tableView AndIndex:(NSInteger)index {
  29. NSLog(@"============================数组index%ld",(long)index);
  30. NSString *ID = @"HomeTableViewCell1";
  31. switch (index) {
  32. case 1:
  33. ID = @"HomeTableViewCell1";
  34. break;
  35. case 2:
  36. ID = @"HomeTableViewCell2";
  37. break;
  38. default:
  39. ID = @"HomeTableViewCell3";
  40. break;
  41. }
  42. HomeTableViewCell *cell = (HomeTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ID];
  43. if (cell == nil || !cell) {
  44. NSLog(@"--------nil,%ld",index - 1);
  45. if (index == 0) {
  46. index = 1;
  47. }
  48. cell = [[[NSBundle mainBundle] loadNibNamed:@"HomeTableViewCell" owner:nil options:nil] objectAtIndex:(index - 1)];
  49. }
  50. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  51. return cell;
  52. }
  53. - (IBAction)deleteButtonClicked:(TDButton *)sender {
  54. if (self.buttonBlock) {
  55. self.buttonBlock();
  56. }
  57. }
  58. - (void)loadCurrentItemModel:(Item *)model{
  59. if (ISEmptyString(model.Title)) {
  60. _titleLabel.hidden = YES;
  61. }else{
  62. _titleLabel.attributedText = [self setTitleStr:model.Title isTop:model.IsTop];
  63. _titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  64. }
  65. if (ISEmptyString(model.Source)) {
  66. self.bconst.constant = 0;
  67. _buninessLabel.hidden = YES;
  68. [self.eyeImgV mas_updateConstraints:^(MASConstraintMaker *make) {
  69. make.left.mas_equalTo(self.titleLabel);
  70. }];
  71. }else{
  72. _buninessLabel.text = model.Source;
  73. }
  74. _checkLabel.text = [NSString stringWithFormat:@"%ld", (long)model.ReadCount];
  75. if (!ISEmptyNumber(model.Author)) {
  76. _authorLab.hidden = NO;
  77. _authorLab.text = model.Author;
  78. } else {
  79. _authorLab.hidden = YES;
  80. self.rconst.constant = 0;
  81. [self.refereeLab mas_updateConstraints:^(MASConstraintMaker *make) {
  82. make.left.mas_equalTo(self.titleLabel);
  83. }];
  84. }
  85. _refereeLab.hidden = YES;
  86. if (model.ImageUrls.count >= 3) {
  87. if ([self isGifOrSwf:model.ImageUrls.firstObject]) {
  88. FLAnimatedImage * image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:model.ImageUrls.firstObject]]];
  89. FLAnimatedImageView * imageV = [[FLAnimatedImageView alloc] init];
  90. imageV.animatedImage = image;
  91. self.firstImgVi = imageV;
  92. }else{
  93. [self.firstImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls.firstObject] placeholder:IMG(@"img_placeHolder")];
  94. }
  95. if ([self isGifOrSwf:model.ImageUrls[1]]) {
  96. FLAnimatedImage * image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:model.ImageUrls[1]]]];
  97. FLAnimatedImageView * imageV = [[FLAnimatedImageView alloc] init];
  98. imageV.animatedImage = image;
  99. self.secondImgVi = imageV;
  100. }else{
  101. [self.secondImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[1]] placeholder:IMG(@"img_placeHolder")];
  102. }
  103. if ([self isGifOrSwf:model.ImageUrls[2]]) {
  104. FLAnimatedImage * image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:model.ImageUrls[2]]]];
  105. FLAnimatedImageView * imageV = [[FLAnimatedImageView alloc] init];
  106. imageV.animatedImage = image;
  107. self.lastImgVi = imageV;
  108. }else{
  109. [self.lastImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[2]] placeholder:IMG(@"img_placeHolder")];
  110. }
  111. // [self.secondImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[1]] placeholder:IMG(@"img_placeHolder")];
  112. // [self.lastImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[2]] placeholder:IMG(@"img_placeHolder")];
  113. self.firstImgVi.hidden = NO;
  114. self.lastImgVi.hidden = NO;
  115. self.secondImgVi.hidden = NO;
  116. }
  117. // else if (model.ImageUrls.count == 2) {
  118. // NSLog(@"%@",model.ImageUrls);
  119. // if ([model.ImageUrls.firstObject containsString:@"webp"]) {
  120. // [self.firstImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls.firstObject] placeholder:IMG(@"img_placeHolder")];
  121. // }else{
  122. // [self.firstImgVi sd_setImageWithURL: [NSURL URLWithString:model.ImageUrls.firstObject] placeholderImage:IMG(@"img_placeHolder")];
  123. // }
  124. //
  125. // [self.secondImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls[1]] placeholder:IMG(@"img_placeHolder")];
  126. // self.firstImgVi.hidden = NO;
  127. // self.lastImgVi.hidden = YES;
  128. // self.secondImgVi.hidden = NO;
  129. // }
  130. else{
  131. if ([self isGifOrSwf:model.ImageUrls.firstObject]) {
  132. FLAnimatedImage * image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:model.ImageUrls.firstObject]]];
  133. FLAnimatedImageView * imageV = [[FLAnimatedImageView alloc] init];
  134. imageV.animatedImage = image;
  135. self.firstImgVi = imageV;
  136. }else{
  137. [self.firstImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls.firstObject] placeholder:IMG(@"img_placeHolder")];
  138. }
  139. // [self.firstImgVi setImageWithURL:[NSURL URLWithString:model.ImageUrls.firstObject] placeholder:IMG(@"img_placeHolder")];
  140. self.firstImgVi.hidden = NO;
  141. self.lastImgVi.hidden = YES;
  142. self.secondImgVi.hidden = YES;
  143. }
  144. }
  145. - (NSMutableAttributedString *)setTitleStr:(NSString *)text isTop:(BOOL)isTop
  146. {
  147. NSMutableAttributedString * mattStr = [[NSMutableAttributedString alloc] init];
  148. // [mattStr addAttributes:@{NSFontAttributeName: [UIFont fontWithName:@"PingFang-SC-Regular" size:18],NSForegroundColorAttributeName: UIColorHex(000000)} range:NSMakeRange(0, text.length)];
  149. // NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init];
  150. // 行间距
  151. // [style setLineSpacing:8];
  152. // // 段落间距
  153. // [style setParagraphSpacing:6];
  154. // // 首行缩进
  155. // [style setFirstLineHeadIndent:25];
  156. // [mattStr addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, text.length)];
  157. if (isTop) {
  158. NSTextAttachment *imageAtta = [[NSTextAttachment alloc] init];
  159. imageAtta.bounds = CGRectMake(0, -2, 32, 15.5);
  160. imageAtta.image = [UIImage imageNamed:@"homeicon_setTop"];
  161. NSAttributedString *attach = [NSAttributedString attributedStringWithAttachment:imageAtta];
  162. [mattStr insertAttributedString:attach atIndex:0];
  163. [mattStr appendAttributedString:[[NSAttributedString alloc] initWithString:@" "]];
  164. [mattStr appendAttributedString:[[NSAttributedString alloc] initWithString:text]];
  165. }else{
  166. [mattStr appendAttributedString:[[NSAttributedString alloc] initWithString:text]];
  167. }
  168. return mattStr;
  169. }
  170. - (BOOL)isGifOrSwf:(NSString *)imageStr
  171. {
  172. NSString * name = [[imageStr pathExtension] lowercaseString];
  173. if ([name hasSuffix:@"gif"] || [name hasSuffix:@"swf"]) {
  174. return YES;
  175. }else{
  176. return NO;
  177. }
  178. }
  179. @end