Как я могу использовать drawRect для загрузки изображения в UITableView - PullRequest
0 голосов
/ 02 июля 2010

У меня есть сгруппированный UITableView с некоторыми большими изображениями. Тем не менее, производительность прокрутки довольно низкая (обратите внимание: она была отличной до обновления iOS 4, теперь она очень нервная). Я читал, что использование drawRect вместо добавления подпредставлений в ячейку может повысить производительность.

Первый вопрос: это правда?

Второй вопрос: если это повысит производительность, как я могу это реализовать? Я смотрел на пример кода UITableViewSuite № 5, который делает это, но у меня много проблем с адаптацией их кода для работы с моим проектом. Есть ли другие хорошие примеры того, как это сделать?

Спасибо за помощь!

1 Ответ

1 голос
/ 02 июля 2010

Да, это очень верно.

По сути, вы хотите реализовать пользовательский UIView для представления содержимого ваших UIImageViewCells. Внутри этого пользовательского представления вы реализуете drawrect для вытягивания вашей ячейки.

Это фантастическое сессионное видео с WWDC 2009, демонстрирующее это. Я считаю, что видео теперь доступно любому в программе для разработчиков iPhone. Я отредактирую этот ответ, если IO сможет найти ссылку. Наибольший выигрыш в производительности связан с тем, что при пользовательском рисовании табличному представлению не нужно объединять много слоев вместе.

Если единственная причина, по которой у вас медленная прокрутка, связана с использованием больших изображений, это может вам не сильно помочь. Я бы позаботился о том, чтобы ваши изображения не увеличивались или уменьшались, а вы загружали их лениво. Не загружайте изображения во время быстрой прокрутки табличного представления - это снизит производительность.

...