首页 > 代码库 > iOS自动获取Lable的高度

iOS自动获取Lable的高度

//定义宏:

#define kFontSize                      14

#define kPhotoCell_Width               300

#define kPhotoCell_MarginBetween       3

#define kPhotoCell_TitleLabel_Height      25

//方法:

+ (CGFloat)heightForRowWithModel:(PhotoInfo *)photoInfo

{

   //1.图片的高度

   //让图片等比例缩放

   //(1)获取图片

   UIImage *image = [UIImageimageWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"TSummer"ofType:@"png"]];

    //(2)计算图片的高度

   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

{

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

   CGSize size = image.size;

   //(2)求出缩放比例

   CGFloat scale = kPhotoCell_Width / size.width;

   CGFloat imageHeight = size.height * scale;

   return imageHeight;

}

//单独计算文本的高度

+ (CGFloat)heightForText:(NSString *)text

{

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

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

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

}

iOS自动获取Lable的高度