3

我正在删除一些照片资产,我想在资产被删除时显示一个活动指示器,并在资产被删除但我的代码运行缓慢时停止它,你知道出了什么问题吗?

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")
                }
        })
4

1 回答 1

3

我自己解决了,答案如下:

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()
                }
        })

只需要添加:

dispatch_async(dispatch_get_main_queue()){
     self.activityIndicator.stopAnimating()
}
于 2015-08-07T09:28:27.137 回答