美文网首页
imagePickerController(_ picker:

imagePickerController(_ picker:

作者: 133sheiya | 来源:发表于2019-07-20 20:00 被阅读0次

代码为:



  class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {

    var imgV:UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        imgV = UIImageView(image: UIImage(named: "me"))
        imgV.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
        self.view.addSubview(imgV)
        imgV.isUserInteractionEnabled = true
        imgV.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(headImgvAction)))
        // Do any additional setup after loading the view.
    }
    
    //MARK: - 选取头像操作
    @objc func headImgvAction()  {
        
        
        let alertSheet = UIAlertController.init(title: "提示", message: "选择项目图片", preferredStyle: .actionSheet)
        let takePhoto  = UIAlertAction.init(title: "拍照", style: .destructive) { (alertAction) in
            self.takePhoto()
        }
        let getPic =  UIAlertAction.init(title: "从相册选取", style: .default) { (alertAction) in
            self.getPic()
        }
        let cancel = UIAlertAction.init(title: "取消", style: .cancel) { (alertAction) in
            
        }
        alertSheet.addAction(takePhoto)
        alertSheet.addAction(getPic)
        alertSheet.addAction(cancel)
        self.present(alertSheet, animated: true) {
            
        }
        
    }
    ///打开相机操作
    func takePhoto()  {
        if UIImagePickerController.isSourceTypeAvailable(.camera) {
            let picController = UIImagePickerController()
            picController.sourceType = .camera
            picController.delegate = self
            picController.allowsEditing = false
            self.present(picController, animated: true, completion: nil)
        } else {
            //            print("相机不可用")
        }
    }
    func getPic(){
        if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
            let picController = UIImagePickerController()
            picController.delegate = self
            picController.sourceType = .photoLibrary
            picController.allowsEditing = false
            self.present(picController, animated: true, completion: nil)
        } else {
            //            print("相册不可用")
        }
    }
    
   private func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        let resultImg = info["UIImagePickerControllerOriginalImage"] as! UIImage
        
        imgV.image = resultImg
       
    
        picker.dismiss(animated: true) {
            
        }
        
    }


}


之前是在func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])这个函数前面加了private
导致根本就不执行。解决方法是将private 改成@objc 可以说是很难发现的bug了。我下午在测试的时候懵逼了好久。后来在``` https://stackoverflow.com/questions/44465904/photopicker-discovery-error-error-domain-pluginkit-code-13

相关文章

网友评论

      本文标题:imagePickerController(_ picker:

      本文链接:https://www.haomeiwen.com/subject/exaulctx.html