Отображение индикатора активности в табличном представлении В то время как данные строки выбираются

StackOverflow https://stackoverflow.com/questions/2650525

Вопрос

Я навигаю от TableView1.ruw в TablView2, который имеет много рядов. Учитывая время загрузки составляет около 3 секунд, я хочу, чтобы навигация скользила в TableView2, как только выбрано TableView1.row, а затем отобразить UiActivityIdicatorView выше TableView2, в то время как данные выбираются, а затем отображаются в его базовой таблице. Примечание, TableView2 на самом деле является субвезонным количеством родителей UIView (в отличие от родителя, являющегося UiableView).

Я видел этот пост: Индикатор активности должен отображаться при навигации от UiableView1 для UiableView22

... Что дает инструкции по добавлению индикатора активности начать и заставляйте вызовы вокруг привлечения данных в ViewDidload of TableView2.

Дело в том, что я не уверен, как вышеупомянутый раствор может работать в виде RUDDIDLOL загрузки и завершится до того, как TASTRVIEW2 заметно скользит в поле зрения.

Отдельно я также пытался добавить индикатор активности через TableView2 в IB и добавил анимационный код начала / остановки индикатора IBOutlet в ViewDiDAppear. То, что произойдет, это запускает данные FECTCE, и я могу видеть, как индикатор вращается, но в конце извлечения, представление таблицы пусто. Похоже, ViewDiDiDiDAppear слишком поздно, чтобы добавить данные в табличному представлению, поскольку CellforlaTindexPath и т. Д. Уже выстрелил.

Может кто-нибудь, пожалуйста, предложить любые указатели? Я вполне могу пропустить что-то очевидное здесь (его почти 5 утра, где я и думаю, что мой мозг - это каша). Должен ли я повторно заставить CellForeatindexpath и т. Д. От ViewDIDIDAppear? Это проблема о том, что мой настольный вид - это подзваход, а не родительский вид?

Спасибо

Это было полезно?

Решение

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

Решение состоит в том, чтобы войти в мой новый контроллер просмотра и A) отключить анимацию индикатора активности на главной ните, а затем B) запустить данные интенсивной приемым на другой поток (с помощью Performent SelectionInackBackground). Любые обновления, связанные с интерфейсом UI, не могут быть применены из фоновой резьбы. Они должны быть переданы обратно в основную нить.

Много, так что посты на это уже (пример здесь), моя плохая за то, что не собирать эти с самого начала :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top