I'm trying to select a photo in photo library after clicking on the image view, but nothing happens. Could you please say what's wrong?
imgView.isUserInteractionEnabled = true
let gestureRecognizer = UIGestureRecognizer(target: self, action: #selector(changeImage))
imgView.addGestureRecognizer(gestureRecognizer)
@objc func changeImage() {
let imagePicker = UIImagePickerController()
imagePicker.sourceType = .photoLibrary
imagePicker.allowsEditing = true
imagePicker.delegate = self
present(imagePicker, animated: true, completion: nil)
}
extension ViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey(rawValue: "UIImagePickerControllerEditedImage")] as? UIImage {
self.imgView.image = image
}
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
}
Use UITapGestureRecognizer instead of the UIGestureRecognizer.
let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(changeImage))