博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift iOS : YYText计算文字占用高度
阅读量:5965 次
发布时间:2019-06-19

本文共 2069 字,大约阅读时间需要 6 分钟。

使用动态文字填充UITableViewCell内容时,需要计算文字占用高度,以便告知UITableViewCell的行高。使用YYText的YYTextLayout可以帮助做到这点。

如下案例,简单封装了YYTextLayout,并通过两个案例调用,演示它的做法:

import UIKitimport YYText@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate {    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {        let a = "I'm trying to import myFramework into a project. I've added ... If I get you correctly you don't have a separate build target for your framework (you"        print(Foo.OccupyHigh(a,UIScreen.main.bounds.size.width - 24))        print(Foo.OccupyHigh(a+a,UIScreen.main.bounds.size.width - 24))        return true    }}class Foo {    class func getYYLayout(_ title : String?)->YYTextLayout?{        return getYYLayout(title,UIScreen.main.bounds.size.width - 24)    }    class func getYYLayout(_ title : String?, _ width : CGFloat)->YYTextLayout?{        var topicTitleAttributedString: NSMutableAttributedString?        var topicTitleLayout: YYTextLayout?        let r :CGFloat = 15.0        let g :CGFloat = 15.0        let b :CGFloat = 15.0        topicTitleAttributedString = NSMutableAttributedString(string: title!,                                                               attributes: [                                                                NSFontAttributeName:v2Font(17),                                                                NSForegroundColorAttributeName:UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 255),                                                                ])        topicTitleAttributedString?.yy_lineSpacing = 3        topicTitleLayout = YYTextLayout(containerSize: CGSize(width: width, height: 9999), text: topicTitleAttributedString!)        return topicTitleLayout    }    class func OccupyHigh(_ title : String, _ width : CGFloat) -> CGFloat{        let topicTitleLayout = getYYLayout(title,width)        return topicTitleLayout?.textBoundingRect.size.height ?? 0    }}复制代码

核心为OccupyHigh函数,告诉它文字的内容和希望的宽度,就可以得到它的占用高度。

转载地址:http://jptax.baihongyu.com/

你可能感兴趣的文章
二叉树的遍历
查看>>
三元组相加获得target
查看>>
Javascript设计模式之——代理模式
查看>>
10分钟搭建MySQL Binlog分析+可视化方案
查看>>
vmware虚拟机配置串口
查看>>
小型自动化运维--expect脚本之传递函数
查看>>
多activity中退出整个程序
查看>>
【scala初学】scala IDE eclipse
查看>>
Dockerfile构建LNMP分离环境部署wordpress
查看>>
网络中最常用的网络命令(5)-完整参数
查看>>
[unity3d]Assetbundle使用示例2(支持多平台)
查看>>
實用 SMTP 指令
查看>>
Exchange Server 2010部署安装之一
查看>>
重建控制文件--Rebuild controlfile
查看>>
PhotoShop的神奇(重新发表)
查看>>
集群节点列表编辑程序
查看>>
Nsrp实现juniper防火墙的高可用性【HA】!
查看>>
Linux下磁盘阵列raid
查看>>
Android 动态移动控件实现
查看>>
oracle11g 安装在rhel5.0笔记
查看>>