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