Код здесь не требуется.Мне нужно несколько советов о том, как расположить все глифы очень длинной многострочной строки для отображения в UITextView с включенной прокруткой.Некоторая справочная информация, чтобы понять обстоятельства.
Справочная информация: у меня очень длинный многострочный текст, который должен быть представлен в UITextView с включенной прокруткой.Я создал функцию, которая идентифицирует позицию CGRect
соответствия строки поиска в многострочной строке, а затем анимирует пользователя в позицию CGRect
соответствия.Это достигается путем передачи CGRect
сопоставленного текста в contentOffset
, который оживляет прокрутку к месту.CGRect
, переданный в contentOffset
, генерируется с использованием layoutmanager
для обеспечения точности.Другими словами, CGRect
текста основывается на положении глифа совпадающей строки.
Однако, если CGRect
соответствующей строки поиска расположен вертикально далеко от UITextView bounds.height
, анимация фактически завершается неудачей.Там нет прокрутки вообще.Это как если бы анимация прокрутки не знала, где найти позицию CGRect
для прокрутки до соответствующей строки.Я могу исправить проблему, если сначала вручную прокрутить до самого низа UITextView, а затем выполнить анимацию до позиции CGRect
соответствующей строки поиска.При таких обстоятельствах создается впечатление, что UITextView имеет полное представление о текстовой разметке и может точно найти местоположение совпадающей строки поиска CGRect
в многострочной строке.
Исходя из вышеизложенного, для меня очевидно, что UITextView не размещает все глифы многострочной строки одновременно.Скорее всего, представление отображает глифы фрагментами, подобно тому, как представление таблицы создает ячейки.Мне также кажется, что UITextView имеет возможность сохранять всю информацию о макете глифа, когда я вручную прокручиваю границы представления до самого низа вертикального размера контента.
Существует ли какой-либо код, который эффективно выкладывает весь размер содержимого UITextView, даже если глифы находятся далеко за пределами вертикальных границ UITextView?Похоже, мне нужно сначала разметить все глифы, чтобы предотвратить ошибку выше.