Есть ли способ определить координаты конца текста в UILabel? (не маркировать прямоугольную рамку)

Мне нужно разместить некоторый UIView сразу после окончания текста с некоторыми условиями:

Если от конца текста до правого края контейнера достаточно места, поместите вид сразу после него. Если нет мест - ставьте вид выше. Проблема в том, что это должно работать и для второй строки.

Вот иллюстрация: UILabel заканчивается

Я знаю, что есть API для получения фрейма форматированного текста в UILabel, который работает для одной строки. Я также знаю о пути исключения, но он будет работать только в том случае, если прикрепленный вид будет выровнен правильно, но мне нужно, чтобы он был размещен сразу после окончания текста.

Знаете ли вы API TextKit или какой-то трюк для достижения этой цели?

Возможный способ решить эту проблему — получить диапазон текста из второй строки, а затем вычислить кадр UILabel для этой единственной строки, но я не могу найти, есть ли интерфейс для этого.

Весь вопрос в том, как получить ширину (рамку) текста на второй строке UILabel/UITextView?


person George    schedule 17.05.2019    source источник


Ответы (1)


Я нашел кое-что для вас. обратитесь к этому ответу. это может помочь вам.

этот ответ имеет алгоритм, который возвращает длину NSString, которая может поместиться в UILabel. и используя это, вы можете найти текст первой строки.

После этого вы можете легко найти фактический размер второй строки на основе оставшегося текста.

person Akash Soni    schedule 17.05.2019