2013-12-10 4 views
1

У меня есть настройка коллекции с 10 подзонами в ячейке.UICollectionView scroll lag

В подвиды -imageview с меткой на нем -text вид -imageview -uilabel -imageview -uilabel

Первоначально вид коллекции есть 15 ячеек, отображаемых в то время на IPad с. Нет, когда я просматриваю паузы прокрутки, когда пришло время заменить ячейки внизу или сверху (повторное использование ячеек). Я удалил тень, но все тот же вопрос.

Таким образом, проблема возникает, когда старая ячейка повторно используется, вызывая задержку.

Btw, изображения не загружены через сеть.

ответ

2

У меня был ответ на это давным-давно, но на благо других и кто может быть в той же проблеме.

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

Чтобы измерить скорость прокрутки, вам необходимо использовать инструменты> графика> инструмент анимации ядра для измерения частоты кадров.

Попробуйте это, и вы заметите разницу.

3

EDIT: Нет необходимости экспериментировать с масками автоматического изменения, только что прочитал эту статью о UICollectionView прирост производительности http://noxytrux.github.io/blog/2014/09/25/ios8-weirdness-part3-laggy-uicollectionview/

Это, вероятно, является autolayout над головой. Вместо этого попробуйте попробовать авторезистировать маски.

Вы можете просто совершить все, и сделать эксперимент:

  1. выключить autolayout на файле XIb клеток
  2. запустить приложение для тестирования производительности (не беспокоиться о перепутались макете)
  3. (если необходимо, сделать макет в коде, если это необходимо), а не автозапуск, если эффект заметен

Я исправил проблемы с производительностью UICollectionView таким образом. Это помогает большинству, когда у вас много видимых ячеек за раз.

Кроме того, если у вас есть вид на изображение смотрите этот ответ Setting image property of UIImageView causes major lag

Не забывайте про инструменты: запустить Time Profiler и посмотреть, что ест ваш основной раз нити больше всего.

+0

Исправлено это для меня. Жизнь спасателя! – pixelfreak