0

J'ai un code comme celui-ciUIActivityIndicator Avant Disappear image chargée à Swift

startAnimating(CGSize(width: 100, height: 100), message: "Loading...", type: NVActivityIndicatorType.pacman, displayTimeThreshold: 5, minimumDisplayTime: 5) 
    self.view.makeToastActivity(.center) 
    DispatchQueue.global(qos: .background).async {    
     //self.view.addSubview(collectionNews) 
     //activityIndicatorView.stopAnimating() 
     DispatchQueue.main.async { 
      self.myGroup.enter() 
      self.view.isUserInteractionEnabled = false 
      self.view.window?.isUserInteractionEnabled = false 
      self.getJsonFromUrl() 
      self.collectionNews.dataSource = self 
      self.collectionNews.delegate = self 
      self.collectionNews.contentInset = UIEdgeInsetsMake(0, 5, 0, 5) 
      self.getJsonFromUrl2() 
      self.myGroup.leave() 
      self.refresh_now() 
      self.myGroup.notify(queue: .main) { 
       self.stopAnimating() 
       self.view.hideToastActivity() 
       self.view.isUserInteractionEnabled = true 
       self.view.window?.isUserInteractionEnabled = true 
      } 
     }    
    } 

Cependant, quand je lance l'application, l'indicateur d'activité disparaît toujours avant que toutes les images chargées avec succès. Cela déclenchera une erreur lorsque l'utilisateur essayera de faire défiler partout sur l'application, avant que tout le contenu soit chargé avec succès.

même, j'utilise 2 indicateur d'activité, et les deux disparaissent toujours avant chaque chose chargée.

Quelqu'un pourrait-il me donner des conseils, lequel j'ai mal fait?

+1

où vous montrez des images dans tableView? Où avez-vous mis ce code? Pouvez-vous faire votre question plus compréhensible? –

+0

vous pouvez ajouter du temps pour l'indicateur d'activité @ christ2702 –

Répondre

0

Vous êtes en train de charger le contenu dans le fil de discussion principal. Vous pouvez charger/récupérer les données du serveur en arrière-plan et mettre à jour votre interface utilisateur dans le thread principal. Comme:

startAnimating(CGSize(width: 100, height: 100), message: "Loading...", type: NVActivityIndicatorType.pacman, displayTimeThreshold: 5, minimumDisplayTime: 5) 
    self.view.makeToastActivity(.center) 
    DispatchQueue.global(qos: .background).async {    
     //self.view.addSubview(collectionNews) 
     //activityIndicatorView.stopAnimating() 

      self.myGroup.enter() 
      self.view.isUserInteractionEnabled = false 
      self.view.window?.isUserInteractionEnabled = false 
      self.getJsonFromUrl() 
      self.collectionNews.dataSource = self 
      self.collectionNews.delegate = self 
      self.collectionNews.contentInset = UIEdgeInsetsMake(0, 5, 0, 5) 
      self.getJsonFromUrl2() 
      self.myGroup.leave() 
      self.refresh_now() 

     DispatchQueue.main.async { 
      self.myGroup.notify(queue: .main) { 
       self.stopAnimating() 
       self.view.hideToastActivity() 
       self.view.isUserInteractionEnabled = true 
       self.view.window?.isUserInteractionEnabled = true 
      } 
     }    
    } 
+0

Je suis désolé, mais il ne donne pas de résultat différent. Aidez-moi, s'il vous plaît – christ2702