cell的自适应高度

//动态设置cell的高度

+ (CGFloat)heightForRowWithModel:(PhotoInfo *)photoInfo

{

//1.图片的高度

//让图片等比例缩放

//(1)获取图片

UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ZZ"ofType:@"png"]];

CGFloat imageHeight = [self heightForImage:image];

//2.文本的高度

CGFloat textHeight = [self heightForText:photoInfo.introduction];

//3.返回cell 的总高度

return kPhotoCell_TitleLabel_Height + imageHeight + textHeight +4* kPhotoCell_MarginBetween;

}

//单独计算图片的高度

+ (CGFloat)heightForImage:(UIImage *)image

{

//(2)获取图片的大小

CGSize size = image.size;

//(3)求出缩放比例

CGFloat scale = kPhotoCell_Width / size.width;

CGFloat imageHeight = size.height * scale;

return  imageHeight;

}

//单独计算文本的高度

+ (CGFloat)heightForText:(NSString *)text

{

//设置计算文本时字体的大小,以什么标准来计算

NSDictionary *attrbute = @{NSFontAttributeName:[UIFont systemFontOfSize:kFontSize]};

return[text boundingRectWithSize:CGSizeMake(kPhotoCell_Width,1000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attrbute context:nil].size.height;

}

代码中k开头的都是宏定义的数值




·

你可能感兴趣的:(cell的自适应高度)