обеспечить макет в NSLayoutManager

У меня есть UITextView с большим количеством текста. Прокрутка в основном плавная на iPhone 4, 5 и 6, но на 6 Plus есть много заиканий. (Я полагаю, это потому, что 6 Plus недостаточно мощный для количества пикселей, которые он должен перемещать). Я замечаю, что как только я прокручиваю область, если я прокручиваю ее назад, прокрутка становится приятной и плавной; раскладка уже выполнена для региона и процессору многого не надо делать. Я хочу, чтобы разметка выполнялась до того, как я попаду в регион. Вот что я пробовал:

textView.layoutManager.ensureLayoutForTextContainer(textView.textContainer)

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

textView.layoutManager.ensureLayoutForTextContainer(textView.layoutManager.textContainers[0] as NSTextContainer)

Это тоже не имело значения.

Что мне нужно сделать, чтобы принудительно разместить весь текст в текстовом контейнере?

Любая помощь будет принята с благодарностью.

Спасибо.

EDITED TO ADD: Чтобы ответить на вопрос TheCodingArt: я не делаю ничего экзотического с точки зрения менеджера компоновки. Это мой код настройки:

var textStorage = NSTextStorage()
var layoutManager = NSLayoutManager()
textStorage.addLayoutManager(layoutManager)
var textContainer = NSTextContainer(size: textContainerSize)
layoutManager.addTextContainer(textContainer)

textView = UITextView(frame: CGRectMake(0, 0, textViewWidth, textViewHeight), textContainer: textContainer)

textView.showsHorizontalScrollIndicator = false
textView.showsVerticalScrollIndicator = false
textView.backgroundColor = UIColor.clearColor();
textView.editable = false;
textView.selectable = true;
textView.scrollsToTop = false
self.view.addSubview(textView)

Создание экземпляров и добавление текстового контейнера и текстового хранилища я научился делать из первого ответа на этот вопрос: Прокрутка вниз UITextView ошибочна в iOS 7 ... и это немного помогло, но недостаточно для 6 Plus.

Позже я добавляю к нему текст:

textStorage.appendAttributedString(attribStr)

person Casey Perkins    schedule 16.02.2015    source источник
comment
Я не уверен, что вызывает вашу проблему с заиканием, но ни в коем случае 6 Plus не обладает недостаточной мощностью для количества пикселей, которые он должен выдвигать. Проведите с ним стендовые испытания, и вы будете удивлены, насколько «больше» мощности по сравнению с 6 и 5/5S. Отпугивающего фактора нет. Мне кажется, что у вас есть ограничения, которые в целом конфликтуют из-за размера экрана. Кроме того, нетипично навязывать ограничения макету, используя приведенное выше. Если вы следуете жизненному циклу, все должно быть в порядке.   -  person TheCodingArt    schedule 16.02.2015
comment
Однако, чтобы еще больше помочь, вам нужно добавить больше контекста в уравнение. Я предполагаю, что вы используете собственный менеджер компоновки и рисуете/обнаружите текст? В противном случае вам не нужно трогать менеджер компоновки.   -  person TheCodingArt    schedule 16.02.2015
comment
Привет, TheCodingArt, спасибо за вашу готовность помочь. Я добавил код в исходный пост, чтобы показать, что я не делаю ничего особенного для менеджера компоновки. (Кроме того, если вы поищите в Google «заикание» iPhone 6 Plus, вы найдете множество жалоб на его производительность по сравнению с другими моделями).   -  person Casey Perkins    schedule 16.02.2015
comment
Поверьте мне, когда я говорю из личного сравнительного анализа и опыта, эти жалобы напрасны, лол. Я посмотрю и посмотрю, что я могу вычесть.   -  person TheCodingArt    schedule 16.02.2015
comment
Судя по тому, что я вижу выше и что я думаю, я хотел бы перенести это во внешний чат. Я бы удалил все, что связано с менеджером компоновки, и удалил/повторно добавил textView и убедился, что его ограничения компоновки верны. Я собираюсь создать для вас фиктивный проект и отобразить типичное текстовое представление на iPhone 6, которое отлично прокручивается (и я делал это много раз на 6 Plus).   -  person TheCodingArt    schedule 16.02.2015
comment
Вот фиктивный проект, доказывающий, что виноват не iPhone 6 Plus и/или обычно настроенный textView: bitbucket.org/thegamingart /пустой текст   -  person TheCodingArt    schedule 16.02.2015
comment
Я также предоставляю пример проекта о том, как правильно настроить ручной менеджер за минуту.   -  person TheCodingArt    schedule 16.02.2015
comment
Еще раз спасибо за помощь. На данный момент нет ограничений по макету; Я позиционирую абсолютно все. В вашем фиктивном проекте должен быть большой объем текста, чтобы он был грубым эквивалентом. (Мой текст на самом деле является греческим текстом с частыми примерами цветного и курсивного форматирования). Я доступен для внешнего чата, но не знаю, что вы имеете в виду.   -  person Casey Perkins    schedule 16.02.2015
comment
Спасибо, я посмотрю. Но знаете ли вы, как форсировать макет и почему вызов метода sureLayoutForTextContainer, упомянутый в моем исходном посте, ничего не делает?   -  person Casey Perkins    schedule 16.02.2015