Используйте «constrainedToSize» (а не просто по ширине) и визуализируйте столько, сколько вы можете.
Если вы действительно хотите взять именно тот текст, который вам не подходит, вам придется выполнить поиск, добавляя слово за раз, а затем проверяя размер, чтобы увидеть, как высоко вы поднялись. Вы можете начать с грубой оценки, выполнив всю строку, ограниченную чем-то высотой всего в одну строку с неограниченной шириной (скажем, 999999), а затем разделить ширину на столько строк, сколько вы хотите, чтобы получить грубую начальную точку для добавления / удаление слов из строки (это не будет точно из-за переноса слов).
Фундаментально, хотя кажется странным взять оставшийся текст и поместить его в другую ячейку. Вы действительно уверены, что не хотите просто изменить высоту ячейки с текстом, чтобы она соответствовала целиком?