Я добавляю текст постепенно к обертке CATextLayer
в UIScrollView
. Каждый раз, когда я добавляю текст, мне нужно добавить высоту в textLayer и в scrollView contentSize
и отрегулировать scrollView contentOffset
.Как получить число обертывания CATextLayer для вычисления высоты
(пользователь должен иметь возможность использовать Scrollview пересмотреть предыдущий текст, но при добавлении нового текста, я хочу, чтобы прокрутить вниз к нему программно.)
sizeWithFont:
будет относиться вся строка UIKit как бы это находится в одной строке, поэтому, чтобы вычислить высоту, мне нужно увеличить размер size.height, возвращаемый количеством строк, созданных оболочкой textLayer.
Проблема заключается в том, что если я получаю доступ к строке через текстовый слой, он не будет содержать лишних символов «\ n» или «\ r» для учета обертывания.
Наверняка есть какой-то способ получить информацию об упаковке? Может быть, держится от суперкласса CALayer
как-то? В противном случае я застрял, вычисляя собственные разрывы строк.
Я бы предположил, что для атрибутивных строк 'CATextLayer' использует Core Text для макета, поэтому вы можете использовать' CTFramesetterSuggestFrameSizeWithConstraints' для определения высоты слоя. – omz
* Это * ответ. Благодарю. Если вы опубликуете его как таковой, я отмечу его как принятый ответ. Я думаю, что в какой-то момент я кое-что увидел в приложении frameetter, но не нажал. Итак, теперь он вернулся к чертежной доске ... – Wienke
Теперь я отправил свой комментарий в качестве ответа. – omz