swift - 当用户在 Swift 中将图像保存到库时,为什么不显示加载指示器?
问题描述
我想构建一个功能,让用户可以将图像保存到他们的库中。问题是处理需要很长时间,所以我想显示加载指示器让用户等待。但加载不显示。我该如何解决我的问题?感谢您的帮助。我的代码如下:
@objc func saveImage(sender: UIButton) {
DispatchQueue.main.async {
showLoading(viewCtrl: self)
let imageString = self.arrayPost[sender.tag].image
if let url = URL(string: imageString),
let data = try? Data(contentsOf: url),
let image = UIImage(data: data) {
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
showSuccess(viewCtrl: self)
}
}
}
解决方案
在后台线程上保存图像并在主线程上进行 UI 处理
showLoading(viewCtrl: self)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
// save image code here
dispatch_async(dispatch_get_main_queue(), { () -> Void in
hideLoading(viewCtrl: self)
showSuccess(viewCtrl: self)
})
});
推荐阅读
- node.js - 如何在车把中导出异步功能?
- amazon-web-services - 由于尺寸过大,无法在 Amazon Connect 中导出联系流
- python-3.7 - 如何修复 ModuleNotFoundError:没有名为“pandas_datareader”的模块
- ios - iOS Swift:带有特殊字符的文件和文件夹的名称
- java - 如何读取 .txt 文件并将其结构切换为 2D 列表
- laravel - 在一个维度中连接来自另一个模型的单个列
- c - 我的 C 代码计算 k 的最小值,其总和大于用户输入 n 没有给我预期的结果?
- php - PHP mb_convert_encoding 不适用于查询
- r - 如何在 R 中进行 LOESS 平滑?
- azure-devops - 使用私有 Azure Artifacts 源中的包进行 Devops:意外状态代码“未找到 404”