我对Xcode和Swift还是很陌生,我试图在使用UIImageView
选择的UIImagePickerController
中显示图像。我使用UIImageView
链接了@IBOutlet
,并在底部放置了一些if
语句以允许编辑所选图片,但是当我的代码中弹出错误时,我被卡住了。我非常确定问题与我引用UIImageView
的方式有关,但是我不知道如何以其他方式进行。我只是得到这个帐户来问这个问题,所以请原谅我发布帖子的方式。
这里是代码:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func openPhotosButton(_ sender: UIButton) {
showImagePickerController()
}
@IBOutlet weak var characterView: UIImageView!
}
extension ViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func showImagePickerController() {
let imagePickerController = UIImagePickerController()
imagePickerController.delegate = self
imagePickerController.allowsEditing = true
imagePickerController.sourceType = .photoLibrary
present(imagePickerController, animated: true)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let editedImage = info[UIImagePickerController.InfoKey.editedImage] as UIImage {
characterView.image = editedImage
}
else if let originalImage = info[UIImagePickerController.InfoKey.originalImage] as UIImage {
characterView.image = originalImage
}
dismiss(animated: true)
}
}
来自Xcode的图片:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9WRFo5Ti5wbmcifQ==” alt =“来自Xcode的图片”>
将您的方法更改为该方法
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let editedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
characterView.image = editedImage
}
else if let originalImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
characterView.image = originalImage
}
dismiss(animated: true)
}