首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >IOS Swift imagePickerController未调用

IOS Swift imagePickerController未调用
EN

Stack Overflow用户
提问于 2018-07-23 02:53:27
回答 2查看 274关注 0票数 0
代码语言:javascript
运行
AI代码解释
复制
class MyPage: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {

    var imagePicker = UIImagePickerController()
    @IBOutlet weak var selectImage: UIButton!

    override func viewDidLoad() {
        imagePicker.sourceType = .photoLibrary
        imagePicker.delegate = self
    }



   @IBAction func selectImage(_ sender: Any) {
            print("a")
            if UIImagePickerController.isSourceTypeAvailable(.photoLibrary){
                print("b")
                imagePicker.allowsEditing = false
                imagePicker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)!
                self.present(imagePicker, animated: true,completion: nil)
            }
    @objc func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!){
            self.dismiss(animated: true, completion: { () -> Void in
                print("dismiss")
            })

            print(image)
            selectImage.setImage(image, for: .normal)
        }
}

如果触摸按钮打印A和B并弹出photoLibrary

但选择照片而不是调用imagePickerController

选择照片后不执行任何操作

如何在swift 4中使用imagepicker?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-23 03:51:45

Delegate方法和delegate方法中删除@objc是这样的,所以用下面的代码替换您的函数:

代码语言:javascript
运行
AI代码解释
复制
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])

并使用以下命令获取图像:

代码语言:javascript
运行
AI代码解释
复制
guard let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage else {return}
票数 1
EN

Stack Overflow用户

发布于 2018-07-23 06:22:30

代码语言:javascript
运行
AI代码解释
复制
import UIKit

类ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {

代码语言:javascript
运行
AI代码解释
复制
let imageView = UIImageView()
let imagepicker = UIImagePickerController()
override func viewDidLoad() {
    super.viewDidLoad()
    self.imagepicker.delegate = self
    imageView.frame = CGRect(x: 40, y: 150, width: 100, height: 100)
    self.view.addSubview(imageView)
}

@IBAction func uploadImage(_ sender : UIButton) {
    imagepicker.cameraDevice = .rear
    imagepicker.cameraCaptureMode = .photo
    imagepicker.sourceType = .photoLibrary
}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    guard let image = info[UIImagePickerControllerOriginalImage] as? UIImage else {
        return
    }
    imageView.image = image
    print(image)
}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    self.dismiss(animated: true, completion: nil)
}

}

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

https://stackoverflow.com/questions/51471062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文