@H_
502_0@
我使用
ImagePickerController来
获取配置文件图像.
用户有一个按钮.该按钮触发CamRoll
功能.单击该按钮时,将
显示正常的ImagePickerViewController,但不会
调用didFinishPickingMediaWithInfo.在早期版本的
Swift / Xcode中,
调用了相同的
代码.这是我的
代码.
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)
}
}
为什么不调用代码?
用于imagePickerController(_:didFinishPickingMediaWithInfo :)的Swift 3中UIImagePickerControllerDelegate的正确委托
方法如下所示.
func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [String : Any]) {
}
您可以在UIImagePickerControllerDelegate上查看Apple Documentations以获取更多详细信息.