根據字符串的實際內容的多少 在固定寬度和字體大小的狀況下 動態的計算cell的實際高度

//根據字符串的實際內容的多少 在固定的寬度和字體的大小,動態的計算出實際的高度
+ (CGFloat)textHeightFromTextString:(NSString *)text width:(CGFloat)textWidth fontSize:(CGFloat)size{
    if ([self getCurrentIOS] >= 7.0) {
        //iOS7以後
        /*
         第一個參數: 預設空間 寬度固定  高度預設 一個最大值
         第二個參數: 行間距 若是超出範圍是否截斷
         第三個參數: 屬性字典 能夠設置字體大小
         */
        NSDictionary *dict = @{NSFontAttributeName:[UIFont systemFontOfSize:size]};
        CGRect rect = [text boundingRectWithSize:CGSizeMake(textWidth, MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil];
        //返回計算出的行高
        return rect.size.height;
        
    }else {
        //iOS7以前
        /*
         1.第一個參數  設置的字體固定大小
         2.預設 寬度和高度 寬度是固定的 高度通常寫成最大值
         3.換行模式 字符換行
         */
        CGSize textSize = [text sizeWithFont:[UIFont systemFontOfSize:size] constrainedToSize:CGSizeMake(textWidth, MAXFLOAT) lineBreakMode:NSLineBreakByCharWrapping];
        return textSize.height;//返回 計算出得行高
    }
}

//獲取iOS版本號
+ (double)getCurrentIOS {
    return [[[UIDevice currentDevice] systemVersion] doubleValue];
}
相關文章
相關標籤/搜索