Каков приемлемый FPS для прокрутки и какие советы по повышению производительности?

Я вижу во многих видеороликах WWDC, в которых говорится, что вы хотите достичь 60,0 кадров в секунду как можно ближе, чтобы получить лучшую плавную прокрутку. У меня есть UIScrollView, который загружает изображение и пару табличных представлений одновременно. В настоящее время я получаю 30 FPS. Это половина от рекомендуемого FPS. Просто интересно, какой FPS вы, ребята, обычно получаете для просмотра таблицы/прокрутки, который загружает изображения и другие тяжелые вещи/материалы рендеринга.

Какие еще советы по оптимизации FPS? Я провел прошлую неделю до сих пор, запуская инструменты, используя профилировщик времени, распределения и основной инструмент анимации, чтобы максимально оптимизировать.

Просто немного поясню, что у меня есть.У меня есть макет в стиле каменной кладки/водопада/pinterest на iPad. Так что это не просто обычный UITableView. Это UIScrollView, который заполняет весь экран и заполняется парой UIView. Каждое из этих представлений имеет UIImageView 150x150 и UITableView, а также имеет атрибутивную метку, нарисованную с использованием основного текста. Таким образом, с первого взгляда, когда вы видите экран, вы можете увидеть 5 -8 табличных представлений за один раз, каждая ячейка снова имеет UIImageView, а затем каждая ячейка отображает атрибутивную метку, нарисованную с использованием основного текста.

Так что вы можете себе представить, насколько это глубоко и сложно. Это не просто обычное табличное представление с UIImageView. Я знаю, как получить 60 FPS только с одним UITableView на iPhone с UIImage. Идея состоит в том, чтобы загружать изображения асинхронно и максимально не блокировать основной поток.

РЕДАКТИРОВАТЬ:

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

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

18
задан Justin Meiners 3 August 2013 в 17:14
поделиться