希望你们一切顺利。想知道是否有人能帮助我理解为什么Xcode不能和我玩得很好....
我已将代码分解为以下部分,以便我可以从UIImagePicker中选择个人资料照片:
提前致谢!
class ProfileVC: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
var imagePicker: UIImagePickerController!
override func viewDidLoad() {
super.viewDidLoad()
imagePicker = UIImagePickerController()
imagePicker.delegate = self
}
@IBAction func selectPhotoPressed(sender: UITapGestureRecognizer) {
if UIImagePickerController.isSourceTypeAvailable(.PhotoLibrary) {
self.imagePicker.sourceType = .PhotoLibrary
} else {
self.imagePicker.sourceType = .Camera
}
imagePicker.allowsEditing = true
imagePicker.mediaTypes = [kUTTypeImage as String]
self.presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
self.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo image: UIImage, editingInfo: [String : AnyObject]?) {
headerView.profilePhoto.contentMode = .ScaleAspectFill
headerView.profilePhoto.image = image
imagePicker.dismissViewControllerAnimated(true, completion: nil)
uploadImage(image)
}
答案 0 :(得分:5)
好吧,我似乎现在正在使用它,感谢您帮助确定代码是古老的;)以下是现在运行的内容:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let image = info[UIImagePickerControllerOriginalImage] as? UIImage
headerView.profilePhoto.contentMode = .ScaleAspectFit
headerView.profilePhoto.image = image
imagePicker.dismissViewControllerAnimated(true, completion: nil)
uploadImage(image!)
}
答案 1 :(得分:2)
您的签名有误,但由于它是一种可选方法,因此您不会收到警告。它应该是:
func imagePickerController(picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [String : AnyObject]) {
// Your code
}
答案 2 :(得分:0)
正如大家所建议的那样,使用didfinishpickingmediawithinfo方法并在swift 3,ios 10中提取图像,使用信息词典
func imagePickerController(picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [String : AnyObject])
{
imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
}