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);
    }
  • 相关阅读:
    (Android)如何将一个高复用性项目供其他项目使用(jar导出,导入,Is Library)(转)
    Android:SlidingMenu 使用详解 .
    单项链表和双向链表的区别
    LinkedList 与 ArrayList的区别
    完全二叉树与满二叉树
    C/C++之回调函数
    C++静态库与动态库
    C++项目中的extern "C" {}
    C++强大背后
    移动优先与响应式Web设计
  • 原文地址:https://www.cnblogs.com/tianlin106/p/5948581.html
Copyright © 2011-2022 走看看