zoukankan      html  css  js  c++  java
  • 计算富文本的高度

    1.设置富文本

    - (CGFloat)textHeight :(NSString *)content{
        NSString *text = [CustomMethod transformString:content emojiDic:emojiDic];
        
        text = [NSString stringWithFormat:@"<font color='black' strokeColor='gray' face='Palatino-Roman'>%@",text];
        MarkupParser *wk_markupParser = [[MarkupParser alloc] init];
        NSMutableAttributedString* attString = [wk_markupParser attrStringFromMarkup: text];
        [attString setFont:[UIFont systemFontOfSize:16]];
        
      //设置文本的行高 CGFloat lineSpacing
    = 7.0; CTParagraphStyleSetting paragraphStyles[9] = { {.spec = kCTParagraphStyleSpecifierLineSpacing, .valueSize = sizeof(CGFloat), .value = (const void *)&lineSpacing} }; CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphStyles, 9); NSMutableDictionary * mutableAttributes = [NSMutableDictionary dictionary]; [mutableAttributes setObject:(id)paragraphStyle forKey:(NSString *)kCTParagraphStyleAttributeName]; CFRelease(paragraphStyle); NSDictionary* attDic = [NSDictionary dictionaryWithDictionary:mutableAttributes]; [attString addAttributes: attDic range:NSMakeRange(0, [content length])]; CGSize size=[CommonCore adjustSizeWithAttributedString:attString maxWidth:WIDTHWITH(200)]; return size.height; }

    2、计算高度

    //计算富文本大小
    + (CGSize)adjustSizeWithAttributedString:(NSAttributedString *)attributedString maxWidth:(CGFloat)width {
        CTFramesetterRef framesetter =
        CTFramesetterCreateWithAttributedString((__bridge CFMutableAttributedStringRef)attributedString);
        
        CGSize maxSize = CGSizeMake(width, CGFLOAT_MAX);
        CGSize size = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, CFRangeMake(0, 0), NULL, maxSize, NULL);
        
        CFRelease(framesetter);
        
        return CGSizeMake(floor(size.width) + 1, floor(size.height) + 1);
    }
  • 相关阅读:
    P1536 村村通 题解
    P1551 亲戚题解
    P1185 绘制二叉树 题解
    P3884 [JLOI2009]二叉树问题
    P1087 [NOIP2004 普及组] FBI 树
    P1305 新二叉树题解
    P1229 遍历问题
    P1030 [NOIP2001 普及组] 求先序排列题解
    P1827 [USACO3.4]美国血统 American Heritage 题解
    深度优先搜索dfs 讲解教程
  • 原文地址:https://www.cnblogs.com/tianlin106/p/5948581.html
Copyright © 2011-2022 走看看