나는 ImagePickerController
을 사용하여 프로필 이미지를 가져옵니다. 사용자에게 버튼이 있습니다. 이 버튼은 CamRoll 기능을 트리거합니다. 단추를 클릭하면 일반 ImagePickerViewController
이 나타나지만 didFinishPickingMediaWithInfo
은 호출되지 않습니다. 이전 버전의 Swift/Xcode에서는 동일한 코드가 호출되었습니다. 이것은 내 코드입니다.Swift ImagePickerController didFinishPickingMediaWithInfo가 실행되지 않았습니다.
import UIKit
class AnnonseViewController: UIViewController, UIImagePickerControllerDelegate {
@IBOutlet var Image: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func CamRoll(_ sender: Any) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
self.present(imagePicker, animated: true, completion: nil)
}
private func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [AnyHashable: Any]) {
var image = info[UIImagePickerControllerOriginalImage] as! UIImage
let imageSize = image.size
let width = imageSize.width
let height = imageSize.height
if width != height {
let newDimensions = min(width,height)
let widthOffset = (width - newDimensions)/2
let heightOffset = (height - newDimensions)/2
UIGraphicsBeginImageContextWithOptions(CGSize(width: newDimensions, height: newDimensions), false, 0.0)
image.draw(at: CGPoint(x: -widthOffset, y: -heightOffset), blendMode: .copy, alpha: 1.0)
image = UIGraphicsGetImageFromCurrentImageContext()! as UIImage
UIGraphicsEndImageContext()
}
UIGraphicsBeginImageContext(CGSize(width: 150, height: 150))
_ = UIGraphicsGetCurrentContext()
image.draw(in: CGRect(x: 0, y: 0, width: 150, height: 150))
let smallImage = UIGraphicsGetImageFromCurrentImageContext()
Image.image = smallImage
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
}
코드가 호출되지 않는 이유는 무엇입니까?