Каково значение интервала между строками в обернутом CATextLayer?

#ios #swift #calayer #catextlayer

#iOS #быстрый #calayer #catextlayer

Вопрос:

Я пытаюсь создать CATextLayer с рамкой, размер которой равен 3 строкам текста интервал между этим текстом. Я знаю, что мой размер шрифта равен 12.

Следовательно, высота фрейма должна быть 12*3 2* Размер пробела.

Мне нужно число, равное spaceSize, но я нигде не могу его найти.


Шрифт, который я использую, называется Helvetica, если это поможет.

Комментарии:

1. Почему бы не использовать API для вычисления рамки, необходимой для размещения текста для данного шрифта? NSAttributedText boundingRect даст вам размер. Обязательно укажите соответствующие атрибуты, такие как шрифт и стиль абзаца (если не по умолчанию).

2. @rmaddy Я хочу установить максимальную ширину и некоторые другие параметры. Это игрушечный пример.

3. Ваш комментарий не меняет мой.

Ответ №1:

 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;