我正在尝试创建一个CATextLayer,其框架的确切大小为3行文本加上此文本之间的间距。我知道我的字体大小是12。
因此框架的高度应为12 * 3 + 2 * spaceSize。
我想要spaceSize等于的数字,我在任何地方都找不到。
如果有帮助,我使用的字体是Helvetica。
答案 0 :(得分:4)
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;