Проблема прокрутки UITableView - PullRequest
1 голос
/ 25 сентября 2010

У меня есть UITableView, который перезагружается каждые 3 секунды. Я перезагружаю его, только если моя логическая переменная имеет значение true. В некоторых условиях эта переменная всегда истинна, и эту таблицу трудно прокручивать. (производительность не очень хорошая). В остальное время все в порядке. Что мне делать?

Примечание. Я закодировал свою таблицу в соответствии с рекомендованным Apple способом (лучшие практики UITableView. За исключением того, что я добавляю подпредставления в UITableViewCell, вместо того чтобы рисовать на нем. Я уверен в использовании других методов).

Какое решение для этого?

Ответы [ 2 ]

2 голосов
/ 25 сентября 2010

Вы уверены, что это потому, что вы много обновляете, что затрудняет прокрутку. Какие виды обновления вы имеете в виду, обновляя данные из сети или обновляя таблицу, просматривая вашу ячейку.

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

Если вы делаете пользовательский UITableViewCell, вы рискуете иметь низкую производительность. Дважды проверьте эти вещи:

  • Правильно ли вы используете свою клетку? Проверьте, всегда ли [tableView dequeueReusableCellWithIdentifier:] возвращает ноль или нет. Если он всегда возвращает ноль, то вы делаете это неправильно.

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

  • После того, как вы все проверите и по-прежнему работаете медленно, вам нужно либо уменьшить время, в которое ячейка возвращается (путем меньшего обновления), либо нарисовать ячейку самостоятельно

0 голосов
/ 26 сентября 2010

Если вы выбираете большой набор данных для UITableView, попробуйте получить данные по мере необходимости. Получите данные для каждой ячейки в cellForRowAtIndexPath вместо того, чтобы получать все данные для просмотра и хранения таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...