小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

ios 富文本的高度

IOS 额外说明

收录于:52天前

+ (CGFloat)getStrHeightWithAttributeStr:(NSAttributedString *)string
                                    viewWidth:(CGFloat)viewWidth{
    if (string.length == 0) {
        return 0;
    }
    
    CGSize size  = [string boundingRectWithSize:CGSizeMake(viewWidth, MAXFLOAT) options: NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading  context:nil].size;
    return ceil(size.height);
}

+ (CGFloat)getStrWidthWithAttributeStr:(NSAttributedString *)string
                                  viewHeight:(CGFloat)viewHeight{
    if (string.length == 0) {
        return 0;
    }
    CGSize size  = [string boundingRectWithSize:CGSizeMake(MAXFLOAT, viewHeight) options: NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil].size;
    return ceil(size.width);
}

#import "LJSDAttributeLabel.h"

@implementation LJSDAttributeLabel

- (void)setAttributedText:(NSString*)text
              lineSpacing:(float)lineSpace
                    width:(float)width
                 fontSize:(float)fontSize{
    if (isEmptyStr(text)) return;
   
    self.numberOfLines = 0;
    NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc]initWithString:text];
    //设置行间距
    if (attrStr && attrStr.length > 0){
        NSMutableParagraphStyle *style = [attrStr attribute:NSParagraphStyleAttributeName atIndex:0 effectiveRange:nil];
        int  lineSpacing = lineSpace;
        if (style){
            style.lineSpacing = lineSpacing;
        }else{
            style = [[NSMutableParagraphStyle alloc]init];
            style.lineSpacing = lineSpacing;
            [attrStr addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, attrStr.length)];
            [attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:fontSize] range:NSMakeRange(0, attrStr.length)];
        }
        [self setAttributedText:attrStr];
        
        //富文本的高度
        self.contentHeight = [TFGoodsUtils getStrHeightWithAttributeStr:attrStr viewWidth:width];
    }
}

@end

. . .

相关推荐

额外说明

如何将idea上的新项目转换为maven项目

场景 在刚创建的一个项目中,往往没有被识别为maven项目,怎么做呢? 方法 然后选maven,这样这个项目就变成了maven项目

额外说明

《MongoDB入门教程》第十三章 限制返回结果数

本篇我们学习 MongoDB 中的 limit() 方法,它可以限制查询返回的文档数量。 limit() 方法 find() 方法可能会查找出大量的文档,但是应用程序不一定需要所有的返回结果。为了限制返回文档的数量,可以使用 limit() 方法: db

额外说明

SpringMVC 程序开发:为什么要学SpringMVC?如何学SpringMVC?

文章目录 -前言 1.MVC 1.1 MVC 的定义 1.2 MVC 与 Spring MVC的关系 2.为嘛要学Spring MVC? 3.如何学习 Spring MVC? 3.1 Spring MVC 创建和连接 3.1.1 @RequestMapp

额外说明

auto.js基于控件操作的一些基本实例

// var name=text("王小婷").findOne(); // log(name); // // 调用控件的id // var id=name.id(); // log(id) // 长按操作的实例演示,这里直接通过id方法进行的寻找 //

额外说明

【Unity3D日常开发】Unity3D中屏蔽不想显示的黄色警告消息

推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中,会有一些脚本过

额外说明

C++算法竞赛常用编程模板总结

目录 判断某一数字是否为素数(最简单的判断方式) 求两个数的最大公约数 快速进行素数打表 比较函数,一般与sort函数共同使用,注意这里写成引用形式会更快 并查集 Sort函数 判断某一数字是否为素数(最简单的判断方式) bool isPrime(int

额外说明

无心剑中译莎士比亚诗20首

文章目录 1、莎士比亚十四行诗第8首 - 劝君缔结连理枝 2、莎士比亚十四行诗第17首 - 诗行难述君妩媚 3、莎士比亚十四行诗第18首 - 怎可将你比夏天? 4、莎士比亚十四行诗第19首 - 莫教流年蚀吾爱 5、莎士比亚十四行诗第20首 - 做我情妇兼

额外说明

005 快排qsort库函数的用法——“C”

文章目录 前言 一、什么是qsort快排函数 qsort的参数分析 二、使用步骤 前言 Reference - C++ Reference (cplusplus.com)可在此网站查阅相关函数信息 提示:以下是本篇文章正文内容,下面案例可供参考 一、qs

额外说明

一款好用的数据库表结构文档生成工具

下面介绍一款:简洁好用的数据库表结构文档工具screw,支持MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB 数据库。 主要代码示例: /** * 文档生成 */ void documentGe

额外说明

解决Windows系统文件夹gpedit.dll文件丢失找不到的问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个gpedit.dll文件(挑

ads via 小工具