先看一下效果图
可能会遇到的问题
一 .图片重叠,重复创建
解决这个有两种方法,一种是不使用cell的缓存池,就保证了每个cell都会创建一个新的cell.
//FYGoodsCommentCell *cell = [tableView cellForRowAtIndexPath:indexPath];
但是这种在cell可能会很多的时候不推荐使用,这时候就有了第二种解决方法.
if (self.imageArr.count > 0) {
for (UIImageView *commentImageView in self.imageArr) {
[commentImageView removeFromSuperview];
}
[self.imageArr removeAllObjects];
}
这种方法也不算难想到,主要是整体的这个代码的逻辑性很好(我觉得)_
二.文字的宽高适应
这个当然也不算难,就是有一个方法而已,为了提升点性能就加个预估行高.
/**
* 计算文字的尺寸
*
* @param text 需要计算的文字
* @param font 文字的字体
* @param maxSize 给定的文字范围
*
* @return 文字计算后的真实尺寸
*/
- (CGSize)sizeWithText:(NSString *)text textFont:(UIFont *)font MaxSize:(CGSize)maxSize {
// 字典中装得是表示一个字体
NSDictionary *attr = @{NSFontAttributeName : font};
return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attr context:nil].size;
}
然后在使用的时候
CGSize timeSize = [self sizeWithText:model.time textFont:FYSetFont(13) MaxSize:CGSizeMake(kScreenW / 2, 100)];
好了,大概关键的点就这两个,下面就直接给出完整代码吧,代码写的就是个大概,要想用其他的细节就自己加吧,拿走不谢,留个赞就行.