Kyl*_*loR 8 image uiimagepickercontroller ios swift
我正在尝试从用户的手机中选择图像并使用所述图像更新图像视图.
我遇到的问题是它不会更新图像.它确实到达那里,因为我添加了断点并且它到达了断点,并且图像视图可以在我手动尝试将其更改为其他地方时更改图像.
但它在我需要时拒绝工作.
我的图片视图:
lazy var profilePictureImageView: UIImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "DefaultUser")
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.contentMode = .scaleAspectFill
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSelectProfilePicture)))
imageView.isUserInteractionEnabled = true
return imageView
}()
Run Code Online (Sandbox Code Playgroud)
通过在设备上挑选照片来更新图像的代码:
import UIKit
extension ProfileVC: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func handleSelectProfilePicture() {
let picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = true
present(picker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
var selectedImageFromPicker: UIImage?
if let editedImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
selectedImageFromPicker = editedImage
}
else if let originalImage = info["UIImagePickerControllerOriginalImage"] as? UIImage {
selectedImageFromPicker = originalImage
}
if let selectedImage = selectedImageFromPicker {
profilePictureImageView.image = selectedImage
}
dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
[编辑]我发现的一件事是,如果我在具有不同图像视图的不同VC上尝试它,它可以按预期工作.我可以在两个VC之间看到的唯一主要区别是我希望它能够工作但不会扩展'UIPickerViewDelegate'和'UIPickerViewDataSource'.会有冲突吗?
试试这个,它对我有用:
DispatchQueue.main.async {
profilePictureImageView.image = croppedImage
profilePictureImageView.setNeedsDisplay()
}
Run Code Online (Sandbox Code Playgroud)
基本上,您需要指定要通过更新图像
profilePictureImageView.setNeedsDisplay()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5095 次 |
| 最近记录: |