У меня есть приложение, которое имеет возможность загружать определенные файлы. Эти файлы отображаются в файле UITableView
, и при прослушивании они начинают загружаться.UITableView reloadData блокирует пользовательский интерфейс со многими обновлениями в секунду
Я хотел бы показать ход загрузки в ячейке (например, в процентах). Мой код в настоящее время вызывает уведомления при обновлении хода загрузки.
Проблема в том, что эти обновления прогресса запускаются много (сотни?) Раз в секунду. Если я использую [tableView reloadData]
или даже [tableView reloadRowsAtIndexPaths:...]
, пользовательский интерфейс будет казаться сумасшедшим после начала загрузки, потому что это так часто называют.
Мой код очень минимальный, кроме этого. Я не использую какие-либо необычные методы делегирования UITableView, и я попытался устранить все, кроме обновления метки загрузки в cellForRowAtIndexPath:
, но он все еще сильно мешает!
Какие у меня варианты? Я мог бы создать таймер, который обновляет пользовательский интерфейс каждую секунду или около того, чтобы показать ход загрузки, но это кажется взломанным. Пользовательский интерфейс может быть намного лучше! Есть ли любой способ, которым я могу обновить метку загрузки без задержки моего пользовательского интерфейса?
Ну это гораздо лучше, чтобы обновить только точное представление, вид прогрессбара бы то ни было, чем е e полный рабочий стол. В вашем случае я бы добавил это конкретное представление в качестве наблюдателя вашего уведомления, однако вам нужно будет правильно настроить данные, удалить наблюдателей и т. Д. При прокрутке/загрузке новых ячеек в вашей таблице. – deathhorse