首页 > 解决方案 > 包装的 CATextLayer 中的行间距值是多少?

问题描述

我正在尝试创建一个 CATextLayer,其框架的大小与 3 行文本的确切大小 + 文本之间的间距相同。我知道我的字体大小是 12。

因此框架的高度应该是 12*3 + 2*spaceSize。

我想要 spaceSize 等于的数字,我在任何地方都找不到。


如果有帮助的话,我使用的字体是 Helvetica。

标签: iosswiftcalayercatextlayer

解决方案


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;

推荐阅读