ios - 包装的 CATextLayer 中的行间距值是多少?
问题描述
我正在尝试创建一个 CATextLayer,其框架的大小与 3 行文本的确切大小 + 文本之间的间距相同。我知道我的字体大小是 12。
因此框架的高度应该是 12*3 + 2*spaceSize。
我想要 spaceSize 等于的数字,我在任何地方都找不到。
如果有帮助的话,我使用的字体是 Helvetica。
解决方案
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString( (CFMutableAttributedStringRef) textLayer.string);
CGSize suggestedSize = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, CFRangeMake(0, 0), NULL, CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX), NULL);
CFRelease(framesetter);
CGFloat layerHeight = ceil(suggestedSize.height);
spaceSize = (layerHeight - 36) / 2.0;
推荐阅读
- java - 从 JAVA 客户端到 Remedy Helix 的连接超时
- python-3.6 - 使用qpython和python3.6查询kdb
- python - Dask Distributed:如何从集群中删除上传的文件
- c# - C# UIAutomation 使 Excel 崩溃
- django - 嵌套在单独的 Django 模型表中等效的 for 循环字符串
- python - 通过 Python rdflib 访问海龟(.ttl)文件中的文件
- reactjs - PDFTron设置,我必须在哪里复制公共目录
- php - mpdf 使用 while 打印包含内部和外部数据的表格
- scala - PostgreSQL 普通 sql 查询转换为 Slick Scala 查询
- sql - 我想在表中添加新行,但我想使用列名 (SQL) 进行数学运算