【发布时间】:2019-08-19 11:35:36
【问题描述】:
我正在显示这个字符串(注意中断):
CONSEJO
NACIONAL
PARA LA
CULTURA
Y LAS ARTES
我已使用苹果here 建议的代码将 NSAttributedString 配置为将行高常量设置为 26 点:
CGFloat lineSpacing = 26;
CTTextAlignment theAlignment = kCTLeftTextAlignment;
CTParagraphStyleSetting theSettings[3] =
{
{kCTParagraphStyleSpecifierMaximumLineHeight, sizeof(CGFloat), &lineSpacing},
{kCTParagraphStyleSpecifierMinimumLineHeight, sizeof(CGFloat), &lineSpacing},
{kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), &theAlignment },
};
但最后一行有多余的空间:
如果我在单词之间手动添加空格,我会得到预期的结果,所以在打印时:
CONSEJO NACIONAL PARA LA CULTURA Y LAS ARTES
它显示了这一点(注意最后一行没有多余的间距):
这不是一个可持续的解决方案,因为我不想手动更改所有字符串以根据帧大小添加空格。
我已经测试了几个月,但我一直无法解决这个问题,最后一行总是得到更多空间。
我也试过用“\r”看看是否得到不同的结果,但它仍然增加了额外的空间,显示:
Consejo\rNacional\rpara la\rCultura\ry las Artes
制作:
[左使用 \r] [右使用空格]
[这里所有蓝色块的大小都一样]
所以空间变少了,但仍然比应有的空间多。
CoreText 应该能够处理这样的简单字符串。
添加空格还不够好(有几个原因),必须有办法控制它。
你认为问题是什么?
【问题讨论】:
标签: iphone ios ipad core-text nsattributedstring