Как я могу считать символы, которые показывает UITextView? - PullRequest
4 голосов
/ 23 сентября 2010

как узнать общее количество символов, которое UITextView отображает в своем конкретном contentSize после применения UILineBreakModeWordWrap.

Я буду использовать разные строки каждый раз как текст UITextView. Строки намного длиннее, чем может содержать UITextView с указанной областью. Видимые символы будут разными для каждой отдельной строки из-за разной длины пробелов в конце строк.

И я хочу узнать количество символов, видимых в моем UITextView.

1 Ответ

1 голос
/ 24 сентября 2010

Используйте этот метод из NSString:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
  • Сначала вы вычисляете, как долго должна быть высота UITextView, чтобы вместить весь текст.
  • Используя пропорции, вы узнаете, как долго ваша строка должна соответствовать реальному размеру.
  • a) Если эта строка соответствует текущему размеру, вы можете добавлять символы один за другим и снова проверять размер, пока он больше не будет соответствовать -> предел - это то, что вы ищете.
  • b) Если эта строка не соответствует текущему размеру, то вы удаляете из нее символы один за другим до тех пор, пока она не уместится -> снова, этот предел - то, что вы ищете в этом случае.

Это очень интенсивный метод, но я думаю, что он единственный (его можно оптимизировать, добавляя / удаляя половину оставшейся строки вместо добавления / удаления символов).

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