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 = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] 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:[UIFont systemFontOfSize:kFontSize]};

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

}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。