2013-02-12 2 views
5

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

Мне нужно добавить искусственный курсор к виду с UILabel внутри него. Проблема в том, что текст в UILabel, по-видимому, меняет свои верхние и нижние поля произвольно. Я не могу понять, как работает ОС, где разместить текст в UILabel.

Так что было бы здорово, чтобы создать категорию или метод, который обрабатывает исходный пиксель оси Y фактического текста, нарисованного на виде.

Возможно ли это вообще? Как UITextField позиционирует текст и курсор отлично?

UPDATE

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

Большое спасибо.

+0

делают '[UITextField textRectForBounds:]' не дать вам то, что вы хотите? – trojanfoe

+0

Это не похоже на изменение высоты, если размер шрифта уменьшается (автоматическая усадка UILabel) –

ответ

0

Вам нужно использовать UILabel или вы можете использовать отключенный UITextView?

Для текста просмотра вы могли бы сделать что-то вроде

CGRect rect = [textView.layoutManager usedRectForTextContainer:textView.textContainer]; 

Это должно дать вам то, что вы хотите. Если память обслуживает прямоугольник, который он возвращает, будет относиться к текстовому виду.

Надеется, что это помогает :)

Смежные вопросы