2014-12-30 1 views
-1

Я пытаюсь сделать make UIViewcontroller, в котором я обновляю некоторые файлы для своего приложения. im пытается показать ход обновления, но кажется, что, обновляя IM и внося изменения в некоторые IBOutlets, они фактически не изменят внешний вид, пока моя функция не будет закончена. может ли кто-нибудь помочь мне в этом? здесь является частью моего Update() функцииСделать изменение пользовательского интерфейса средней функции в swift

for person in allContacts { 
     if person.pictureName != "#" { 
      infoLabel.text = "Downloading picture of " + person.name 
      person.picture = DBManager.downloadPicture(person.pictureName) 
      infoLabel.text = "Saving picture of " + person.name 
      DBManager.savePicture(person.picture, pictureName: person.pictureName) 
     } 

     progressBar.progress += oneProgressBarFragment 
    } 

прогресс обновления бар обыкновение, пока он не достигнет конца функции Update(), а затем он показывает, что 100% завершено. есть ли способ, которым я могу перерисовать интерфейс, чтобы индикатор выполнения обновлялся после загрузки каждого изображения?

+1

Вы делаете одно из двух очень неправильных вещей. Либо вы выполняете длительный (загружающий) код синхронно в основном потоке, либо разговариваете с интерфейсом из фонового потока. В любом случае у вас есть проблема с большими потоками. Вам нужно пересмотреть весь свой подход здесь. – matt

+0

@matt Я выполняю много времени на основной теме. Как бы вы это сделали? спасибо за ответ btw :) –

+0

Я бы научился правильно загружать вещи, то есть асинхронно. Ладно, ну, собственно, я как-то правильно скачал. Я говорю: вы должны научиться правильно загружать вещи. :) – matt

ответ

0

Необходимо выполнить асинхронную загрузку и иметь другой способ проверки прогресса.

Смежные вопросы