Как я могу найти Rect обернутого текста на iPhone? - PullRequest
1 голос
/ 07 октября 2008

Кто-нибудь может порекомендовать хороший метод для определения Rect некоторого обернутого текста на iPhone? Я попробовал все встроенные методы для NSString в 2.1 SDK безрезультатно. Методы размера никогда не возвращают размеры, которые позволяют мне полностью разместить обернутый текст в моем пользовательском представлении.

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

Любая помощь очень ценится!

Ответы [ 3 ]

3 голосов
/ 07 октября 2008

NSString's sizeWithFont: constrainedToSize: метод может быть полезен:

CGSize sizeForText = [theText sizeWithFont:theFont constrainedToSize:CGSizeMake(myMaxWidth, 9999)];

Вы говорите, что перепробовали все методы определения размера, но на основании вашего описания это звучит как то, что вы ищете.

0 голосов
/ 26 ноября 2009

Я обнаружил, что всякий раз, когда вы устанавливаете свойство text вашего UITextView, оно обновляет свое свойство contentSize. Это позволяет очень легко изменить размер рамки текстового представления для отображения в виде прокрутки и т. Д.

0 голосов
/ 07 октября 2008

Поскольку вы знаете размер своего представления, вызовите функцию sizeWithFont: forWidth: lineBreakMode: NSString, начиная с минимального размера шрифта, ширины вида и UILineBreakModeWordWrap. Затем увеличивайте размер шрифта, пока возвращаемый размер не станет таким же высоким, как ваш вид.

Если вы хотите установить максимальный размер шрифта, вы можете также реализовать это как бинарный поиск, а не увеличивать размер шрифта.

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