iPhone - медленная прокрутка на TableView - PullRequest
0 голосов
/ 06 июня 2011

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

if (cell == nil) {

    [[NSBundle mainBundle] loadNibNamed:@"CustomCellQuartieri" owner:self options:NULL];
    cell=customCell;
}

Это код. customCell - это объект UITableViewCell с собственным xib. Контроллер xib - это мой контроллер представления, в котором находится таблица. Я загружаю 2 метки и один imageView из Интернета. В чем проблема? И как я могу сделать свою собственную ячейку многоразовой? Спасибо

Ответы [ 3 ]

1 голос
/ 06 июня 2011

Чтобы сделать вашу пользовательскую ячейку многоразовой, задайте свойство идентификатора в Интерфейсном Разработчике.

Кому вы загружаете данные из Интернета (Async)?

0 голосов
/ 31 августа 2011

Проблема заключалась в том, что изображения должны загружаться асинхронно.Поиск SDWebImages в Google.

0 голосов
/ 06 июня 2011

Поскольку вы используете пользовательский UITableViewCell, вы должны установить свойство строки идентификатора через Interface Builder, а затем удалить из него ячейку обычным способом, используя эту же строку в качестве ключа.Таким образом, ваше приложение не будет создавать новую ячейку для каждой строки таблицы, но будет повторно использовать уже существующие ячейки, сокращая время сборки и представления.

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

Редактировать

Как указано в комментариях, медлительность может быть связана со временем загрузки удаленных изображений.Вы можете попытаться создать локальный словарь из чего-то похожего, в котором вы сохраните уже загруженные изображения, привязав их к их URL-адресу в качестве ключа, а вы будете удаленно читать те, которые у вас еще нет.Это будет работать как локальный кеш, чтобы сократить время загрузки удаленных данных.

...