UITablewView останавливает рендеринг во время прокрутки - PullRequest
1 голос
/ 17 февраля 2012

Short Intro

В настоящее время у меня есть UITableView, который заполнен пользовательскими ячейками, отображающими ход загрузки файлов, загружаемых в данный момент на сервер.Процессы загрузки - это просто объекты NSURLConnection, работающие асинхронно в фоновом режиме с использованием стандартного асинхронного метода NSURLConnection.

Проблема заключается в том, что во время прокрутки UITableView или, я полагаю, UIScrollView типа UITableview блокируетвесь основной поток, который выполняет эту важную информацию, такую ​​как процесс загрузки моих файлов и тому подобное, не обновляется до тех пор, пока UIScrollView не остановится.

Исследования

СейчасЯ натолкнулся, я думаю, что является точно такой же проблемой, как моя в этом посте: Подобный вопрос

Так что кажется, что весь основной поток заблокирован.Я также успешно добавил таймер, как в предыдущем посте, который вызывается даже во время прокрутки.Но ... это, к сожалению, на самом деле не решает мою ситуацию.

Проблема по-прежнему заключается в том, что объекты NSURLConnection блокируются, что означает, что метод удаления NSURLConnection: didSendBodyData

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

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

1 Ответ

3 голосов
/ 17 февраля 2012

Рассматривали ли вы перемещение кода NSURLConnection для запуска в фоновом потоке?Это должно позволить ему работать, даже когда пользователь прокручивает.

Ваш UITableView является UIScrollView (который вы упомянули), и это означает, что вы можете зарегистрировать UIScrollViewDelegate против него.Если вы реализуете scrollViewDidScroll:, вы можете эффективно провести опрос в основном потоке, чтобы увидеть, есть ли у вас результаты из вашего NSURLConnection.

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