Разделить текст, если его содержание превышает ограничение числа строк в Swift - PullRequest
0 голосов
/ 20 мая 2018

Условия:

  • UITextView, который может содержать максимум X строк: отключить прокрутку.(Например; максимум строк = 8)
  • Огромный текстовый контент.(Например, 25 строк)
  • Язык английский.(Перенос слов обязателен)

Как разделить текст, если его содержание превышает ограничение числа строк?Я хочу разбить текст на массив.Следуя условию, текст должен быть разделен на 4 элемента.

Обновление: На самом деле то, чего я хочу достичь, это когда у меня длинный текст, и у меня есть размер контейнера с фиксированным текстом (например, UITextView), который не может отобразить весь контент, тогда есть следующая кнопка для сброса контейнера и отображения левого контента.Я думал, что разделенная строка поможет, но это неправильный выбор.Я пытаюсь сделать предложение Мэтта и надеюсь, что проблема будет решена.

1 Ответ

0 голосов
/ 20 мая 2018

Ваша цель не очень хорошая.Вместо того, чтобы разбивать текст на четыре текстовых массива, было бы лучше воспользоваться преимуществами Text Kit и позволить менеджеру раскладки разделить текст на четыре текстовых контейнера (один NSLayoutManager, четыре NSTextContainers).

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

Вот пример с двумя текстовыми представлениями:

enter image description here

Это два объекта UITextView, управляемых one NSLayoutManager, так что, поскольку текст становится слишком длинным для первого просмотра текста, он автоматически перетекает во второе представление текста.

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

...