Нет эффекта: CATextLayer обернут

У меня критическая проблема.

Я разрабатываю iOS-приложение. Я пытался использовать это приложение на iOS 8.3, CATextLayer не работает, как раньше.

Я думал, что «обернутое» свойство не работает. Потому что CATextLayer имеет правильную высоту и ширину. Но просто текст не переносится.

Если текст состоит из нескольких строк, эта проблема возникает только в конце строки.

Официальная ссылка: https://developer.apple.com/documentation/quartzcore/catextlayer/1515302-wrapped


person Yukiko Tamiya    schedule 27.04.2015    source источник


Ответы (2)


При вычислении высоты текстового слоя используйте ceil(h + 1), где h — это высота, возвращаемая методом boundingRectWithSize. По сути, boundingRectWithSize не работает, возвращая недостаточно места по вертикали. Затем CATextLayer решает, что, поскольку она не помещается в последнюю строку, лучше отправить строку за правый край...

Запутанное описание API приведено здесь:

https://developer.apple.com/documentation/foundation/nsstring/1524729-boundingrectwithsize?language=objc

person Jonathan Zrake    schedule 09.02.2019

Существует проект LabelKit, который поддерживает многострочную текстовую анимацию на основе UILabel, сохраняя ограничения макета, размер содержимого и анимацию. гораздо больше, чем CATextLayer был способен.

person Eugene Dudnyk    schedule 21.07.2019