Ваш первоначальный вопрос является своего рода вопросом, потому что он говорит о двух совершенно противоположных вещах.
С одной стороны, вы говорите UILabel.
С другой стороны, вы используете такие термины, как NSLayoutManager и NSTextStorage и NSTextContainer - стек TextKit.
Это противоположности, поскольку UILabel не рисуется со стеком TextKit.То, что вы просите сделать, это как пытаться поднять лист бумаги с помощью магнита;магниты действительно поднимают вещи, но они поднимают магнитные материалы, и бумага не относится к числу таких.Конечно, UILabel должен рисовать каким-то детерминистическим способом, но что такое таким образом, совершенно неизвестно и непрозрачно и не имеет ничего общего с TextKit.
С другой стороны, UITextView,или представление, что вы рисуете сами, используя TextKit, использует , использует TextKit, и теперь все инструменты TextKit применяются.Поэтому то, что вы просите сделать, было бы намного проще, если бы это было UITextView (или представлением, которое вы рисуете сами, используя TextKit).
Это не должно сильно влиять на внешний вид интерфейса.UITextView может работать так же, как UILabel (сделать его нередактируемым и неконтролируемым), но с тем важным отличием, что весь стек текстового набора отображается напрямую.Так вот с чего я начну.Я один из тех, кто предпочитает использовать фреймворк, а не бороться с ним.