首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UIImageView在从图片库中拍摄或选择图片后不使用新图像更新

UIImageView在从图片库中拍摄或选择图片后不使用新图像更新
EN

Stack Overflow用户
提问于 2016-11-27 07:35:48
回答 4查看 2K关注 0票数 0

在拍摄照片或从照片库中选择图片后,我尝试在UIImageView中填充图像。

下面是处理照相机和照片库激活的代码:

代码语言:javascript
运行
复制
@IBAction func activateCmera(_ sender: Any) {
    if (UIImagePickerController.isSourceTypeAvailable(.camera)) {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = .camera
        imagePicker.allowsEditing = false
        self.present(imagePicker, animated: true, completion: nil)
    }
}


@IBAction func activatePhotoLib(_ sender: Any) {
    if (UIImagePickerController.isSourceTypeAvailable(.photoLibrary)) {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = .photoLibrary
        imagePicker.allowsEditing = false
        self.present(imagePicker, animated: true, completion: nil)
    }
}

下面是在UIImageView中填充图像的代码:

代码语言:javascript
运行
复制
@IBOutlet weak var imageView: UIImageView!

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage
    self.imageView.contentMode = .scaleAspectFit
    self.imageView.image = image
    self.dismiss(animated: true, completion: nil);
}

目前,在我用相机拍照或从我的照片库中选择图片后,我被重定向到这个应用程序的初始视图,而没有UIImageView空间与照片更新。

任何帮助都是非常感谢的!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-11-27 07:59:23

Swift 3中,通过将下面的keys添加到plist中,您需要获得访问plist的权限,并且需要使用正确的delegate方法。

UIImagePickerControllerDelegate& UINavigationControllerDelegate添加到class中,并将imagePicker delegate设置为viewDidLoad &尝试下面的代码。

代码语言:javascript
运行
复制
    let imagePicker = UIImagePickerController()

    @IBAction func activatePhotoLib(_ sender: UIButton) { 
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) {
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary;
        imagePicker.allowsEditing = false
        self.present(imagePicker, animated: true, completion: nil)
       } 
     }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
        imageView.image = image
     }
    picker.dismiss(animated: true, completion: nil);
    }

输出:updated

票数 3
EN

Stack Overflow用户

发布于 2017-07-25 19:30:14

这似乎是一个问题,因为XCode未能解释imagePickerController函数语法已经改变(自Swift 3以来)。你会发现这两种方式来编写函数在网上到处都是。您还可以在XCode中使用这两种方法,而不会出现任何错误。但是只有第二个才能真正得到正确的图像。

代码语言:javascript
运行
复制
(Option 1 - doesn't work, but XCode doesn't flag it):
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { }

(Option 2 - this is the right syntax!):
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { }
票数 0
EN

Stack Overflow用户

发布于 2017-11-17 16:08:02

**您需要保存类似于全局对象的UIImagePickerController,在此之后,您需要将此代码推到操作函数**上。

代码语言:javascript
运行
复制
@objc func getImage() {

    imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary

    imagePicker.allowsEditing = false

    imagePicker.modalPresentationStyle = .overCurrentContext

    present(imagePicker, animated: true)

}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
    imageView.image = image
 }

self.dismiss(animated: true, completion: nil);

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40826760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档