Отображение индикатора активности в табличном представлении В то время как данные строки выбираются
-
27-09-2019 - |
Вопрос
Я навигаю от 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, не могут быть применены из фоновой резьбы. Они должны быть переданы обратно в основную нить.
Много, так что посты на это уже (пример здесь), моя плохая за то, что не собирать эти с самого начала :)