【发布时间】:2021-11-03 23:00:35
【问题描述】:
我正在将 UIImagePickerController 替换为 iOS 14 的 PHPickerViewController,但我在使用 PHPickerViewController 在 UI 中显示所选照片时遇到问题。当我从照片库中选择一张照片时,PHPickerViewController 会自行关闭而不更新 UI 中的照片。我一直在尝试各种教程中的不同解决方案,但每次都得到相同的结果。
以下是我目前拥有的代码。 DispatchQueue.main.async 括号内的代码是我一直用于 UIImagePickerController 在 UI 中显示照片的代码。
extension EditProfileController: PHPickerViewControllerDelegate {
@available(iOS 14, *)
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
picker.dismiss(animated: true, completion: nil)
for result in results {
result.itemProvider.loadObject(ofClass: UIImage.self) { object, error in
if let image = object as? UIImage {
DispatchQueue.main.async {
self.profileImageView.image = image
self.imageChanged = true
}
}
}
}
}
}
【问题讨论】:
-
真的应该只在照片成功更新后调用“picker.dismiss(animated: true, completion: nil)”这行吗?在 DispatchQueue 回调中将其移至“self.imageChanged”下方。
-
不幸的是,这不起作用,只是冻结了 PHPickerViewController。我尝试将它移到其他地方,例如 for 循环的下方和外部,但得到了相同的结果。
标签: ios swift user-interface uiimagepickercontroller phpickerviewcontroller