Laisser une action se terminer

heliohelio Membre

Bonsoir à  tous,


 


J'aurais besoin qu'une action soit bien visible avant que la suivante ne se lance. Je m'explique :


j'ai une tableView dans laquelle l'utilisateur fait un swipe sur une cellule, il a plusieurs actions dont mettre en favoris, lorsqu'il clique sur mettre en favoris, voici le déroulement des actions :


 


 - traitement de mise en favoris (chargement des données dans Core Data)


 - self.tableView.setEditing(false, animated: true) (animation du menu pour le faire disparaitre)


 - self.tableView.reloadData() 


 


a l'heure actuelle, cela fonctionne mais je n'ai pas le temps de voir l'animation (self.tableView.setEditing(false, animated: true) car le self.tableView.reloadData()  se fait très rapidement


 


Comment procéder pour voir l'action qui précéde le rechargement de la tableView ?


Merci.


Réponses

  • InsouInsou Membre
    mars 2017 modifié #2

    J'ai le même soucis avec des overlays de chargement..

    J'ai juste mis un timer d'une seconde, ça laisse le temps à  l'overlay d'être vu et il disparaà®t quand le traitement est fini.

    J'perds une seconde mais ça améliore l'expérience utilisateur donc bon..



    let when = DispatchTime.now() + 1
    DispatchQueue.main.asyncAfter(deadline: when){
    // ton code
    }
  • Pas fan de l'idée du Timer.


     


    L'idée ici ce serait plutôt d'utiliser CATransaction. Elle a plusieurs méthodes dont une qui permet d'effectuer une tâche à  la fin de l'animation. 



    CATransaction.begin()
    CATransaction.completionBlock = ^{/* ton code ici */}
    // Code animation ici
    // ...
    CATransaction.commit()

    À tester.


  • PyrohPyroh Membre

    Tu fais un reload pour supprimer une ligne c'est une bonne idée mais vu que tu sais quelle ligne supprimer pourquoi ne pas le faire toi même avec :



    func deleteRows(at: [IndexPath], with: UITableViewRowAnimation)
  • J'ai vu récemment sans l'avoir tester une lib sur cocoapod 


     


    https://cocoapods.org/pods/PromiseKit


     


    A tester ...


     


    Je suis preneur si vous avez des retours sur cette lib.


Connectez-vous ou Inscrivez-vous pour répondre.