Обернутый CATextLayer iOS не работает должным образом

У меня есть CATextLayer с многострочным текстом. Параметр обертки установлен на YES. Но он не переносит текст в последнюю строку. Если я добавлю еще одну строку с \n и пробелом, произойдет перенос (но это разрушит макет).

Это происходит только в iOS >= 8.3

Любые идеи, что может вызвать это?


person Swissdude    schedule 21.09.2015    source источник


Ответы (2)


Кое-что в CATextLayer изменилось в iOS 8.3, а это значит, что теперь вам нужно добавить на 1 пиксель больше высоты, чем вы делали раньше. Если вы использовали CTFramesetterSuggestFrameSizeWithConstraints, то теперь это составляет 2 пикселя дополнительной высоты.

Это странная поломка, но с этим мало что можно сделать.

person Bo A    schedule 10.12.2015

Я только что сделал проект LabelKit, который выполняет анимацию текста, нарисованную CoreText. Он также поддерживает анимацию многострочного текста и сохраняет преимущества размера содержимого ограничений макета во время анимации.

CATextLayer делает отрисовку текста CoreGraphics, а буквы там шире и неправильно раскладываются в многострочном слое.

person Eugene Dudnyk    schedule 21.07.2019