晚上好,
我有三个框,用户可以从中选择图像。我试图允许用户在每个框中上传多个图像,有点像火种或Instagram。当我选择图像时,由于某种原因,它只会选择同一图像的多个,而不是选择三个单独的图像。有没有办法单独选择图像?
扩展名newPostViewController:UIImagePickerControllerDelegate,UINavigationControllerDelegate {
@objc func handleSelectJobImageView() {
let picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = true
present(picker, animated: true, completion: nil)
}
@objc func handleSelectJobImageView2() {
let picker2 = UIImagePickerController()
picker2.delegate = self
picker2.allowsEditing = true
present(picker2, animated: true, completion: nil)
}
@objc func handleSelectJobImageView3() {
let picker3 = UIImagePickerController()
picker3.delegate = self
picker3.allowsEditing = true
present(picker3, 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{
JobImageView.image = selectedImage
dismiss(animated: true, completion: nil)
}
}
var selectedImageFromPicker2: UIImage?
if let editedImage2 = info["UIImagePickerControllerEditedImage"] as? UIImage {
selectedImageFromPicker2 = editedImage2
} else if let originalImage2 = info["UIImagePickerControllerOriginalImage"] as? UIImage {
selectedImageFromPicker2 = originalImage2
if let selectedImage2 = selectedImageFromPicker2{
JobImageView2.image = selectedImage2
dismiss(animated: true, completion: nil)
}
}
var selectedImageFromPicker3: UIImage?
if let editedImage3 = info["UIImagePickerControllerEditedImage"] as? UIImage {
selectedImageFromPicker3 = editedImage3
} else if let originalImage3 = info["UIImagePickerControllerOriginalImage"] as? UIImage {
selectedImageFromPicker3 = originalImage3
if let selectedImage3 = selectedImageFromPicker3{
JobImageView3.image = selectedImage3
dismiss(animated: true, completion: nil)
}
}
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
print("canceled picker")
dismiss(animated: true, completion: nil)
}
}
答案 0 :(得分:0)
imagePickerController(_ picker: , didFinishPickingMediaWithInfo info:)
仅从UIImagePicker
返回1张图像。因此,您的上述逻辑是错误的,因为selectedImageFromPicker, selectedImageFromPicker2, and selectedImageFromPicker3
引用了imagePicker中的同一图像。这就是为什么您看到3张相同的图像。
我认为无法使用基本的图像选择器来选择多个图像。您可以做的是将所有图像加载到collectionView中,然后让用户选择单元格。或者,您可以随时使用各种第三方库。