JXSearchFileLogCell.m 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. //
  2. // JXSearchFileLogCell.m
  3. // shiku_im
  4. //
  5. // Created by p on 2019/4/8.
  6. // Copyright © 2019年 Reese. All rights reserved.
  7. //
  8. #import "JXSearchFileLogCell.h"
  9. #import "UIImageView+FileType.h"
  10. @interface JXSearchFileLogCell ()
  11. @property (nonatomic, strong) UIImageView *headImageView;
  12. @property (nonatomic, strong) UILabel *userName;
  13. @property (nonatomic, strong) UILabel *sendTime;
  14. @property (nonatomic, strong) UIImageView *fileImageView;
  15. @property (nonatomic, strong) UILabel *fileName;
  16. @property (nonatomic, strong) UILabel *tip;
  17. @property (nonatomic, strong) UIView *line;
  18. @end
  19. @implementation JXSearchFileLogCell
  20. - (void)awakeFromNib {
  21. [super awakeFromNib];
  22. // Initialization code
  23. }
  24. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
  25. self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  26. if (self) {
  27. self.headImageView = [[UIImageView alloc] initWithFrame:CGRectMake(15, 15, 30, 30)];
  28. self.headImageView.layer.cornerRadius = 2.0;
  29. self.headImageView.layer.masksToBounds = YES;
  30. [self.contentView addSubview:self.headImageView];
  31. self.userName = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(self.headImageView.frame) + 10, self.headImageView.frame.origin.y, 200, self.headImageView.frame.size.height)];
  32. self.userName.textColor = [UIColor lightGrayColor];
  33. self.userName.font = [UIFont systemFontOfSize:16.0];
  34. self.userName.text = @"张辉";
  35. [self.contentView addSubview:self.userName];
  36. self.sendTime = [[UILabel alloc] initWithFrame:CGRectMake(JX_SCREEN_WIDTH - 200 - 15, self.headImageView.frame.origin.y, 200, self.headImageView.frame.size.height)];
  37. self.sendTime.textAlignment = NSTextAlignmentRight;
  38. self.sendTime.textColor = [UIColor lightGrayColor];
  39. self.sendTime.font = [UIFont systemFontOfSize:14.0];
  40. self.sendTime.text = @"2019/2/19";
  41. [self.contentView addSubview:self.sendTime];
  42. UIView *view = [[UIView alloc] initWithFrame:CGRectMake(15, CGRectGetMaxY(self.headImageView.frame) + 10, JX_SCREEN_WIDTH - 30, 80)];
  43. view.backgroundColor = HEXCOLOR(0xf0f0f0);
  44. [self.contentView addSubview:view];
  45. self.fileImageView = [[UIImageView alloc] initWithFrame:CGRectMake(15, 15, 50, 50)];
  46. [view addSubview:self.fileImageView];
  47. self.fileName = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(self.fileImageView.frame) + 10, self.fileImageView.frame.origin.y, view.frame.size.width - CGRectGetMaxX(self.fileImageView.frame) - 10 - 15, 25)];
  48. self.fileName.textColor = [UIColor blackColor];
  49. self.fileName.font = [UIFont systemFontOfSize:16.0];
  50. self.fileName.text = @"源文件.zip";
  51. [view addSubview:self.fileName];
  52. self.tip = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(self.fileImageView.frame) + 10, CGRectGetMaxY(self.fileName.frame), view.frame.size.width - CGRectGetMaxX(self.fileImageView.frame) - 10 - 15, 25)];
  53. self.tip.textColor = [UIColor blackColor];
  54. self.tip.font = [UIFont systemFontOfSize:14.0];
  55. // self.tip.text = @"docx 464KB";
  56. [view addSubview:self.tip];
  57. self.line = [[UIView alloc] initWithFrame:CGRectMake(15, 149.5, JX_SCREEN_WIDTH - 15, LINE_WH)];
  58. self.line.backgroundColor = THEMECOLOR;
  59. [self.contentView addSubview:self.line];
  60. }
  61. return self;
  62. }
  63. - (void)setMsg:(JXMessageObject *)msg {
  64. _msg = msg;
  65. self.userName.text = msg.fromUserName;
  66. [g_server getHeadImageLarge:msg.fromUserId userName:msg.fromUserName imageView:self.headImageView];
  67. self.sendTime.text = [TimeUtil getTimeStrStyle1:[msg.timeSend timeIntervalSince1970]];
  68. switch (self.type) {
  69. case FileLogType_file:{
  70. self.fileName.text = [msg.content lastPathComponent];
  71. NSString * fileExt = [msg.content pathExtension];
  72. NSInteger fileType = [self fileTypeWithExt:fileExt];
  73. [self.fileImageView setFileType:fileType];
  74. self.tip.text = [NSString stringWithFormat:@"%.02fKB",[msg.fileSize longValue]/1000.0];
  75. }
  76. break;
  77. case FileLogType_Link:{
  78. if ([msg.type integerValue] == kWCMessageTypeShare) {
  79. NSDictionary * msgDict = [[[SBJsonParser alloc]init]objectWithString:self.msg.objectId];
  80. self.fileName.text = [msgDict objectForKey:@"title"];
  81. self.tip.text = [msgDict objectForKey:@"subTitle"];
  82. [self.fileImageView sd_setImageWithURL:[NSURL URLWithString:[msgDict objectForKey:@"imageUrl"]] placeholderImage:[UIImage imageNamed:@"unkown"]];
  83. }else {
  84. SBJsonParser * parser = [[SBJsonParser alloc] init] ;
  85. NSDictionary *content = [parser objectWithString:self.msg.content];
  86. self.fileName.text = [content objectForKey:@"title"];
  87. self.tip.text = @"";
  88. [self.fileImageView sd_setImageWithURL:[NSURL URLWithString:[content objectForKey:@"img"]] placeholderImage:[UIImage imageNamed:@"unkown"]];
  89. }
  90. }
  91. break;
  92. case FileLogType_transact:{
  93. if ([msg.type integerValue] == kWCMessageTypeRedPacket) {
  94. self.fileName.text = msg.content;
  95. self.tip.text = @"";
  96. self.fileImageView.image = [UIImage imageNamed:@"hongb"];
  97. }else {
  98. self.fileName.text = [NSString stringWithFormat:@"¥ %@",msg.content];
  99. self.tip.text = msg.fileName;
  100. self.fileImageView.image = [UIImage imageNamed:@"transferAccounts"];
  101. }
  102. }
  103. break;
  104. default:
  105. break;
  106. }
  107. }
  108. -(int)fileTypeWithExt:(NSString *)fileExt{
  109. int fileType = 0;
  110. if ([fileExt isEqualToString:@"jpg"] || [fileExt isEqualToString:@"jpeg"] || [fileExt isEqualToString:@"png"] || [fileExt isEqualToString:@"gif"] || [fileExt isEqualToString:@"bmp"])
  111. fileType = 1;
  112. else if ([fileExt isEqualToString:@"amr"] || [fileExt isEqualToString:@"mp3"] || [fileExt isEqualToString:@"wav"])
  113. fileType = 2;
  114. else if ([fileExt isEqualToString:@"mp4"] || [fileExt isEqualToString:@"mov"])
  115. fileType = 3;
  116. else if ([fileExt isEqualToString:@"ppt"] || [fileExt isEqualToString:@"pptx"])
  117. fileType = 4;
  118. else if ([fileExt isEqualToString:@"xls"] || [fileExt isEqualToString:@"xlsx"])
  119. fileType = 5;
  120. else if ([fileExt isEqualToString:@"doc"] || [fileExt isEqualToString:@"docx"])
  121. fileType = 6;
  122. else if ([fileExt isEqualToString:@"zip"] || [fileExt isEqualToString:@"rar"])
  123. fileType = 7;
  124. else if ([fileExt isEqualToString:@"txt"])
  125. fileType = 8;
  126. else if ([fileExt isEqualToString:@"pdf"])
  127. fileType = 10;
  128. else
  129. fileType = 9;
  130. return fileType;
  131. }
  132. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  133. [super setSelected:selected animated:animated];
  134. // Configure the view for the selected state
  135. }
  136. @end