Лучший способ определить перенос слов NSString в UILabel - PullRequest
1 голос
/ 16 апреля 2009

У меня есть строка вроде:

 -Image-  This is simply a test 
 -Image-  but I want to know how
to separate the two lines.  What
to do here?

Лучший способ реализовать на iPhone:

UIImageView  UILabel1
             UILabel1
UILabel2

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

Более сложным способом было бы найти размер каждого символа при этом размере шрифта, используя sizeWithFont, и сложить все вместе (выяснить, где перенос слова в строке 1 UILabel1, а затем в строке 2). Это похоже на трудный способ решить легкую проблему. Кто-нибудь знает легкий путь?

Ответы [ 2 ]

1 голос
/ 16 апреля 2009

NSString s = @ "Первая строка \ n вторая строка \ n последняя строка";

1 голос
/ 16 апреля 2009

Возможно, это не тот ответ, который вы ищете, но этот тип компоновки проще сделать с помощью WebView.

С точки зрения эффективности, UILabel рендеринг текста в любом случае реализован через WebViews.

Эта статья Крейга Хокенберри предполагает, что попытка

использовать метрики и разрывы строк, которые [соответствует] тем, которые используются в UILabel's реализация [...] далека от совершенства

, а также подтверждает, что UILabel s используют скрытые веб-представления (это также легко увидеть в дампе Shark текстоемкого приложения).

...