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);
    }
  • 相关阅读:
    Java 条件语句
    Java循环
    Java 变量
    Java 数据类型
    nginx+php发布网站
    安装MySQL5.7
    docker-compose参数
    部署
    dockerfile编写
    在VMware中安装CentOS7
  • 原文地址:https://www.cnblogs.com/tianlin106/p/5948581.html
Copyright © 2011-2022 走看看