У меня есть сетка с прокруткой фотографий, которая выглядит и функционирует почти так же, как сборщик фотографий на iPhone. Он построен из UITableView, который использует пользовательский UITableViewCell, который отображает ряд фотографий (очень похоже на то, как Three20 реализует его).
Отлично работает, за исключением того, что производительность прокрутки плохая. Я уже следую большинству рекомендаций по быстрой прокрутке UITableView (а-ля Tweetie ).
Изображения все в комплекте с приложением. Я загружаю их в поток пользовательского интерфейса, по требованию. Я использую UIImage imageNamed: так, чтобы изображения были кэшированы после их первой загрузки. Как только я прокручиваю табличное представление один раз, оно прокручивается очень плавно.
Проблема в том, что при первой прокрутке табличного представления прокрутка вызывает дрожь. Я профилировал приложение и обнаружил, что большую часть времени тратится на загрузку изображений из файловой системы. Это изображения в формате JPEG, которые уже имеют правильный размер (маленький). Вместо этого я попытался использовать изображения в формате PNG, но производительность не сильно улучшилась.
Средство выбора фотографий iPhone демонстрирует гораздо лучшую производительность при загрузке. Мне интересно, было бы быстрее объединить все фотографии в одно изображение, которое я загружаю один раз, а затем делю на более мелкие изображения. Это, безусловно, работает в играх, но я знаю, что это совсем другая история. У кого-нибудь был такой опыт?
Какие-нибудь другие идеи, как я могу улучшить производительность?
Кстати, у меня есть похожая, хотя и меньшая, проблема производительности для другого UITableView, который просто использует стандартные UITableViewCells с одним изображением, назначенным для imageView на строку.