2015-08-03 2 views
3

Je supprime certains éléments de la photo et je souhaite afficher un indicateur d'activité pendant la suppression des actifs et l'arrêter lorsque les actifs ont été supprimés mais que mon code agit lent, savez-vous ce qui ne va pas?Indicateur d'activité agissant lentement à l'intérieur de PHPhotoLibrary.sharedPhotoLibrary(). PerformChanges

PHPhotoLibrary.sharedPhotoLibrary().performChanges({ 
      PHAssetChangeRequest.deleteAssets(enumeration) 
      self.activityIndicator.startAnimating() 
      UIApplication.sharedApplication().beginIgnoringInteractionEvents() 
      }, completionHandler: {success, error in 
       if success { 
        self.activityIndicator.stopAnimating() 
        UIApplication.sharedApplication().endIgnoringInteractionEvents() 
        println("Success") 
       } else { 
        self.activityIndicator.stopAnimating() 
        UIApplication.sharedApplication().endIgnoringInteractionEvents() 
        println("Error") 
       } 
     }) 

Répondre

3

Je résolu moi-même, voici la réponse:

PHPhotoLibrary.sharedPhotoLibrary().performChanges({ 
      PHAssetChangeRequest.deleteAssets(enumeration) 

      let delay = 1 * Double(NSEC_PER_SEC) 
      let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay)) 
      dispatch_after(time, dispatch_get_main_queue()) { 
       self.activityIndicator.startAnimating() 
      } 
      }, completionHandler: {success, error in 

       UIApplication.sharedApplication().beginIgnoringInteractionEvents() 

       if success { 
        println("good") 
        dispatch_async(dispatch_get_main_queue()){ 
         self.activityIndicator.stopAnimating() 
         self.navigationController?.popToRootViewControllerAnimated(true) 
        } 
        UIApplication.sharedApplication().endIgnoringInteractionEvents() 
       } else { 
        println("bad") 
        dispatch_async(dispatch_get_main_queue()){ 
         self.activityIndicator.stopAnimating() 
        } 
        UIApplication.sharedApplication().endIgnoringInteractionEvents() 
       } 
     }) 

Juste besoin d'ajouter:

dispatch_async(dispatch_get_main_queue()){ 
    self.activityIndicator.stopAnimating() 
}