CommonListCell.m 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428
  1. //
  2. // CommonListCell.m
  3. // smartRhino
  4. //
  5. // Created by niuzhen on 2020/4/28.
  6. // Copyright © 2020 tederen. All rights reserved.
  7. //
  8. #import "CommonListCell.h"
  9. @implementation CommonListCell
  10. - (void)awakeFromNib {
  11. [super awakeFromNib];
  12. UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.iconShowL.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(3, 3)];
  13. CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
  14. maskLayer.frame = self.iconShowL.bounds;
  15. maskLayer.path = maskPath.CGPath;
  16. self.iconShowL.layer.mask = maskLayer;
  17. }
  18. + (CGFloat)configCell0Height{
  19. return 72;
  20. }
  21. + (CommonListCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
  22. static NSString *cellIdentifer = @"CommonListCell0";
  23. CommonListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
  24. if (cell == nil) {
  25. cell = [[[NSBundle mainBundle] loadNibNamed:@"CommonListCell" owner:nil options:nil] objectAtIndex:0];
  26. }
  27. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  28. return cell;
  29. }
  30. + (CommonListCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
  31. static NSString *cellIdentifer = @"CommonListCell1";
  32. CommonListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
  33. if (cell == nil) {
  34. cell = [[[NSBundle mainBundle] loadNibNamed:@"CommonListCell" owner:nil options:nil] objectAtIndex:1];
  35. }
  36. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  37. return cell;
  38. }
  39. + (CommonListCell *)configCell2:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
  40. static NSString *cellIdentifer = @"CommonListCell2";
  41. CommonListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
  42. if (cell == nil) {
  43. cell = [[[NSBundle mainBundle] loadNibNamed:@"CommonListCell" owner:nil options:nil] objectAtIndex:2];
  44. }
  45. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  46. return cell;
  47. }
  48. - (void)setCell1Data:(MyFavoriteSubModel *)model
  49. {
  50. WS(weakSelf);
  51. self.nameL.hidden = NO;
  52. self.iconShowL.hidden = YES;
  53. self.comeBtn.hidden = YES;
  54. self.isTopV.hidden = !model.IsTop;
  55. [self.titleL mas_remakeConstraints:^(MASConstraintMaker *make) {
  56. make.left.mas_equalTo(self.iconV.mas_right).offset(15);
  57. make.top.mas_offset(model.CollectionType == CollectModel_TopicBooK ? 40.25 : 15);
  58. make.height.mas_greaterThanOrEqualTo(20);
  59. make.width.mas_lessThanOrEqualTo(SCREEN_WIDTH - (model.IsTop ? 125 : 85));
  60. }];
  61. self.titleL.text = [model.Data.Title length] > 0 ? model.Data.Title : model.Title;
  62. self.nameL.text = [model.Data.Author length] > 0 ? model.Data.Author : @" ";
  63. [self.desBtn setTitle:[model.FolderName length] > 0 ? model.FolderName : @" " forState:UIControlStateNormal];
  64. switch (model.CollectionType) {
  65. // 文章
  66. case CollectModel_Aritle:{
  67. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.ArticleImgUrl.firstObject] placeholderImage:IMG(@"文章") completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
  68. if (image) {
  69. weakSelf.iconShowL.hidden = NO;
  70. }
  71. }];
  72. }break;
  73. // 话题 || 小组
  74. case CollectModel_Toipc:
  75. {
  76. self.iconV.image = IMG(@"话题");
  77. self.comeBtn.hidden = NO;
  78. [self.comeBtn setAttributedTitle:[self comeGroup:model.Data.GroupName] forState:UIControlStateNormal];
  79. }break;
  80. case CollectModel_NewTopic:
  81. {
  82. self.iconV.image = IMG(@"话题");
  83. }break;
  84. case CollectModel_Group:{
  85. self.iconV.image = IMG(@"笔记小组");
  86. }break;
  87. // 收藏
  88. case CollectModel_Collect:{
  89. self.iconV.image = IMG(@"收藏");
  90. }break;
  91. // 笔记
  92. case CollectModel_NoteBook: {
  93. self.iconV.image = IMG(@"noteBook_icon");
  94. }break;
  95. case CollectModel_CollectFile:{
  96. self.titleL.text = model.Title;
  97. self.iconV.image = IMG(@"find_1");
  98. self.comeBtn.hidden = NO;
  99. self.nameL.text = @"";
  100. self.comeLeft.constant = 0.f;
  101. [self.comeBtn setAttributedTitle:[self comeGroup:[NSString stringWithFormat:@"%@的收藏",model.Data.Author]] forState:UIControlStateNormal];
  102. }break;
  103. case CollectModel_NoteFile: {
  104. self.iconV.image = IMG(@"find_1");
  105. }break;
  106. case CollectModel_TopicSubBooK: {
  107. self.iconV.image = IMG(@"find_1");
  108. }break;
  109. // 通知 || 站内信
  110. case CollectModel_Notice:
  111. {
  112. self.iconV.image = IMG(@"通知图标");
  113. }break;
  114. case CollectModel_InterMail:{
  115. self.iconV.image = IMG(@"站内信");
  116. }break;
  117. // 会议
  118. case CollectModel_meetMian:
  119. {
  120. self.iconV.image = IMG(@"会议纪要");
  121. }
  122. break;
  123. case CollectModel_meetDetail:
  124. {
  125. self.iconV.image = IMG(@"会议");
  126. }
  127. break;
  128. case CollectModel_file:{
  129. NSString * imageStr = [ZYCTool getFileNameImage:model.Data.FileName];
  130. if (imageStr.length == 0) {
  131. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.File]];
  132. }else{
  133. self.iconV.image = IMG(imageStr);
  134. }
  135. }break;
  136. case CollectModel_work:
  137. {
  138. self.iconV.image = IMG(@"审批");
  139. }
  140. break;
  141. case CollectModel_financeCount:
  142. {
  143. self.iconV.image = IMG(@"报表");
  144. }
  145. break;
  146. case CollectModel_affairsCount:
  147. {
  148. self.iconV.image = IMG(@"报表");
  149. }
  150. break;
  151. case CollectModel_publishCount:
  152. {
  153. self.iconV.image = IMG(@"报表");
  154. }
  155. break;
  156. default:{
  157. NSString * imageStr = [ZYCTool getFileNameImage:model.Title];
  158. if (imageStr.length == 0) {
  159. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.MinFile]];
  160. }else{
  161. self.iconV.image = IMG(imageStr);
  162. }
  163. }break;
  164. }
  165. }
  166. - (void)setCellTopicBookData:(MyFavoriteSubModel *)model
  167. {
  168. self.iconV.image = IMG(@"topicBook");
  169. self.isTopV.hidden = !model.IsTop;
  170. self.titleL.text = model.Data.Title;
  171. [self.desBtn setTitle:[model.FolderName length] > 0 ? model.FolderName : @" " forState:UIControlStateNormal];
  172. }
  173. - (void)setCellNoAuthorData:(MyFavoriteSubModel *)model
  174. {
  175. WS(weakSelf);
  176. self.nameL.hidden = NO;
  177. self.iconShowL.hidden = YES;
  178. self.comeBtn.hidden = YES;
  179. self.isTopV.hidden = !model.IsTop;
  180. self.titleL.text = [model.Data.Title length] > 0 ? model.Data.Title : model.Title;
  181. [self.desBtn setTitle:[model.FolderName length] > 0 ? model.FolderName : @" " forState:UIControlStateNormal];
  182. switch (model.CollectionType) {
  183. // 文章
  184. case CollectModel_Aritle:{
  185. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.ArticleImgUrl.firstObject] placeholderImage:IMG(@"文章") completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
  186. if (image) {
  187. weakSelf.iconShowL.hidden = NO;
  188. }
  189. }];
  190. }break;
  191. // 话题 || 小组
  192. case CollectModel_Toipc:
  193. {
  194. self.iconV.image = IMG(@"话题");
  195. self.comeBtn.hidden = NO;
  196. [self.comeBtn setAttributedTitle:[self comeGroup:model.Data.GroupName] forState:UIControlStateNormal];
  197. }break;
  198. case CollectModel_NewTopic:
  199. {
  200. self.iconV.image = IMG(@"话题");
  201. }break;
  202. case CollectModel_Group:{
  203. self.iconV.image = IMG(@"笔记小组");
  204. }break;
  205. // 收藏
  206. case CollectModel_Collect:{
  207. self.iconV.image = IMG(@"收藏");
  208. }break;
  209. // 笔记
  210. case CollectModel_NoteBook: {
  211. self.iconV.image = IMG(@"noteBook_icon");
  212. }break;
  213. case CollectModel_CollectFile:{
  214. self.titleL.text = model.Title;
  215. self.iconV.image = IMG(@"find_1");
  216. self.comeBtn.hidden = NO;
  217. self.nameL.text = @"";
  218. self.comeLeft.constant = 0.f;
  219. [self.comeBtn setAttributedTitle:[self comeGroup:[NSString stringWithFormat:@"%@的收藏",model.Data.Author]] forState:UIControlStateNormal];
  220. }break;
  221. case CollectModel_NoteFile: {
  222. self.iconV.image = IMG(@"find_1");
  223. }break;
  224. case CollectModel_TopicSubBooK: {
  225. self.iconV.image = IMG(@"find_1");
  226. }break;
  227. // 通知 || 站内信
  228. case CollectModel_Notice:
  229. {
  230. self.iconV.image = IMG(@"通知图标");
  231. }break;
  232. case CollectModel_InterMail:{
  233. self.iconV.image = IMG(@"站内信");
  234. }break;
  235. // 会议
  236. case CollectModel_meetMian:
  237. {
  238. self.iconV.image = IMG(@"会议纪要");
  239. }
  240. break;
  241. case CollectModel_meetDetail:
  242. {
  243. self.iconV.image = IMG(@"会议");
  244. }
  245. break;
  246. case CollectModel_file:{
  247. NSString * imageStr = [ZYCTool getFileNameImage:model.Data.FileName];
  248. if (imageStr.length == 0) {
  249. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.File]];
  250. }else{
  251. self.iconV.image = IMG(imageStr);
  252. }
  253. }break;
  254. case CollectModel_work:
  255. {
  256. self.iconV.image = IMG(@"审批");
  257. }
  258. break;
  259. case CollectModel_financeCount:
  260. {
  261. self.iconV.image = IMG(@"报表");
  262. }
  263. break;
  264. case CollectModel_affairsCount:
  265. {
  266. self.iconV.image = IMG(@"报表");
  267. }
  268. break;
  269. case CollectModel_publishCount:
  270. {
  271. self.iconV.image = IMG(@"报表");
  272. }
  273. break;
  274. default:{
  275. NSString * imageStr = [ZYCTool getFileNameImage:model.Title];
  276. if (imageStr.length == 0) {
  277. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.MinFile]];
  278. }else{
  279. self.iconV.image = IMG(imageStr);
  280. }
  281. }break;
  282. }
  283. }
  284. - (void)setCellData:(MyFavoriteSubModel *)model withText:(NSString *)text
  285. {
  286. self.isTopV.hidden = !model.IsTop;
  287. [self.titleL mas_remakeConstraints:^(MASConstraintMaker *make) {
  288. make.left.mas_equalTo(self.iconV.mas_right).offset(15);
  289. make.height.mas_greaterThanOrEqualTo(20);
  290. make.width.mas_lessThanOrEqualTo(SCREEN_WIDTH - (model.IsTop ? 125 : 85));
  291. }];
  292. self.titleL.attributedText = [ZYCTool checkOfString:model.Data.Title withSearchText:text withColor:UIColorHex(0xFF5252)];
  293. self.nameL.attributedText = [model.Data.Author length] > 0 ? [ZYCTool checkOfString:model.Data.Author withSearchText:text withColor:UIColorHex(0xFF5252)] : [[NSAttributedString alloc] initWithString:@" "];
  294. [self.desBtn setAttributedTitle:[model.FolderName length] > 0 ? [ZYCTool checkOfString:model.FolderName withSearchText:text withColor:UIColorHex(0xFF5252)] : [[NSAttributedString alloc] initWithString:@" "] forState:UIControlStateNormal];
  295. self.comeBtn.hidden = YES;
  296. switch (model.CollectionType) {
  297. // 文章
  298. case CollectModel_Aritle:{
  299. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.ArticleImgUrl.firstObject] placeholderImage:IMG(@"文章")];
  300. }break;
  301. // 话题 || 小组
  302. case CollectModel_Toipc:
  303. {
  304. self.iconV.image = IMG(@"话题");
  305. self.comeBtn.hidden = NO;
  306. [self.comeBtn setAttributedTitle:[self comeGroup:model.GroupName] forState:UIControlStateNormal];
  307. }break;
  308. case CollectModel_NewTopic:
  309. {
  310. self.iconV.image = IMG(@"话题");
  311. }break;
  312. case CollectModel_Group:{
  313. self.iconV.image = IMG(@"笔记小组");
  314. }break;
  315. // 收藏
  316. case CollectModel_Collect:{
  317. self.iconV.image = IMG(@"收藏");
  318. }break;
  319. // 笔记
  320. case CollectModel_NoteBook: {
  321. self.iconV.image = IMG(@"noteBook_icon");
  322. }break;
  323. case CollectModel_CollectFile:{
  324. self.titleL.attributedText = [ZYCTool checkOfString:model.Title withSearchText:text withColor:UIColorHex(0xFF5252)];
  325. self.iconV.image = IMG(@"find_1");
  326. self.comeBtn.hidden = NO;
  327. self.nameL.text = @"";
  328. self.comeLeft.constant = 0.f;
  329. [self.comeBtn setAttributedTitle:[self comeGroup:[NSString stringWithFormat:@"%@的收藏",model.Data.Author]] forState:UIControlStateNormal];
  330. }break;
  331. case CollectModel_NoteFile: {
  332. self.iconV.image = IMG(@"find_1");
  333. }break;
  334. case CollectModel_TopicBooK:{
  335. self.iconV.image = IMG(@"topicBook");
  336. }break;
  337. case CollectModel_TopicSubBooK: {
  338. self.iconV.image = IMG(@"find_1");
  339. }break;
  340. // 通知 || 站内信
  341. case CollectModel_Notice:
  342. {
  343. self.iconV.image = IMG(@"通知图标");
  344. }break;
  345. case CollectModel_InterMail:{
  346. self.iconV.image = IMG(@"站内信");
  347. }break;
  348. // 会议
  349. case CollectModel_meetMian:
  350. {
  351. self.iconV.image = IMG(@"会议纪要");
  352. }
  353. break;
  354. case CollectModel_meetDetail:
  355. {
  356. self.iconV.image = IMG(@"会议");
  357. }
  358. break;
  359. case CollectModel_file:{
  360. NSString * imageStr = [ZYCTool getFileNameImage:model.Data.FileName];
  361. if (imageStr.length == 0) {
  362. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.File]];
  363. }else{
  364. self.iconV.image = IMG(imageStr);
  365. }
  366. }break;
  367. case CollectModel_work:
  368. {
  369. self.iconV.image = IMG(@"审批");
  370. }
  371. break;
  372. case CollectModel_financeCount:
  373. {
  374. self.iconV.image = IMG(@"报表");
  375. }
  376. break;
  377. case CollectModel_affairsCount:
  378. {
  379. self.iconV.image = IMG(@"报表");
  380. }
  381. break;
  382. case CollectModel_publishCount:
  383. {
  384. self.iconV.image = IMG(@"报表");
  385. }
  386. break;
  387. default:{
  388. NSString * imageStr = [ZYCTool getFileNameImage:model.Data.FileName];
  389. if (imageStr.length == 0) {
  390. [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.Data.MinFile]];
  391. }else{
  392. self.iconV.image = IMG(imageStr);
  393. }
  394. }break;
  395. }
  396. }
  397. - (NSAttributedString *)comeGroup:(NSString *)name
  398. {
  399. NSString * comStr = [NSString stringWithFormat:@"来自-%@",name];
  400. return [self checkOfString:comStr withSearchText:name];
  401. }
  402. - (NSMutableAttributedString *)checkOfString:(NSString *)infoStr withSearchText:(NSString *)text
  403. {
  404. if (infoStr.length == 0 || text.length == 0) {
  405. return nil;
  406. }
  407. NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:infoStr];
  408. [attrString addAttribute:(NSString *)NSForegroundColorAttributeName
  409. value:UIColorHex(0x999999)
  410. range:[infoStr rangeOfString:infoStr]];
  411. [attrString addAttribute:(NSString *)NSForegroundColorAttributeName
  412. value:UIColorHex(0x1F87DB)
  413. range:[infoStr rangeOfString:text]];
  414. return attrString;
  415. }
  416. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  417. [super setSelected:selected animated:animated];
  418. // Configure the view for the selected state
  419. }
  420. @end