chatListModel.m 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // chatListModel.m
  3. // shiku_im
  4. //
  5. // Created by os on 2020/6/29.
  6. // Copyright © 2020 Reese. All rights reserved.
  7. //
  8. #import "chatListModel.h"
  9. @interface chatListModel()
  10. @property (nonatomic,strong) NSMutableDictionary *cellHDic;
  11. @end
  12. @implementation chatListModel
  13. MJCodingImplementation
  14. -(void)setValue:(id)value forUndefinedKey:(NSString *)key{}
  15. -(CGFloat)cellHeight{
  16. if (!_cellHeight) {
  17. CGFloat textY=5;
  18. NSAttributedString *aStr = [[NSAttributedString alloc] initWithData:[self.content dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
  19. CGSize size = [aStr boundingRectWithSize:CGSizeMake(JX_SCREEN_WIDTH-40, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil].size;
  20. // 并不是高度计算不对,我估计是计算出来的数据是 小数,在应用到布局的时候稍微差一点点就不能保证按照计算时那样排列,所以为了确保布局按照我们计算的数据来,就在原来计算的基础上 取ceil值,再加1;
  21. CGFloat height = ceil(size.height) + 1;
  22. // cell的高度
  23. CGSize maxSize=CGSizeMake([UIScreen mainScreen].bounds.size.width-76, MAXFLOAT);
  24. CGFloat textH=[self.title boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14 weight:UIFontWeightRegular]} context:nil].size.height;
  25. _cellHeight=textY+height+textH+10;
  26. }
  27. return _cellHeight+1;
  28. }
  29. @end