zoukankan      html  css  js  c++  java
  • Swift4.0 从相册中获取图片和拍照

    第一步

    添加协议

    UIImagePickerControllerDelegate,UINavigationControllerDelegate
    

      

     

    第二步

    添加选择方式

    let sexActionSheet = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet)
    
            weak var weakSelf = self
    
            let sexNanAction = UIAlertAction(title: "从相册中选择", style: UIAlertActionStyle.default){ (action:UIAlertAction)in
    
                weakSelf?.initPhotoPicker()
                //填写需要的响应方法
    
            }
    
            let sexNvAction = UIAlertAction(title: "拍照", style: UIAlertActionStyle.default){ (action:UIAlertAction)in
    
    
                weakSelf?.initCameraPicker()
                //填写需要的响应方法
    
            }
    
    
            let sexSaceAction = UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel){ (action:UIAlertAction)in
    
                //填写需要的响应方法
    
            }
    
    
            sexActionSheet.addAction(sexNanAction)
            sexActionSheet.addAction(sexNvAction)
            sexActionSheet.addAction(sexSaceAction)
    
            self.present(sexActionSheet, animated: true, completion: nil)
    

      

    第三步

    //MARK: - 相机
    
        //从相册中选择
        func initPhotoPicker(){
            let photoPicker =  UIImagePickerController()
            photoPicker.delegate = self
            photoPicker.allowsEditing = true
            photoPicker.sourceType = .photoLibrary
            //在需要的地方present出来
            self.present(photoPicker, animated: true, completion: nil)
        }
    
    
        //拍照
        func initCameraPicker(){
    
            if UIImagePickerController.isSourceTypeAvailable(.camera){
                let  cameraPicker = UIImagePickerController()
                cameraPicker.delegate = self
                cameraPicker.allowsEditing = true
                cameraPicker.sourceType = .camera
                //在需要的地方present出来
                self.present(cameraPicker, animated: true, completion: nil)
            } else {
    
               print("不支持拍照")
    
            }
    
        }
    
    
    
        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    
    
            //获得照片
            let image:UIImage = info[UIImagePickerControllerEditedImage] as! UIImage
    
            // 拍照
            if picker.sourceType == .camera {  
             //保存相册
            UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(image:didFinishSavingWithError:contextInfo:)), nil)   
            }
    
            personImage.image = image
    
            self.dismiss(animated: true, completion: nil)
        }
    
    
      @objc func image(image:UIImage,didFinishSavingWithError error:NSError?,contextInfo:AnyObject) {
    
            if error != nil {
    
                print("保存失败")
    
    
            } else {
    
                print("保存成功")
    
    
            }
        }
    

      

     
  • 相关阅读:
    添加多个tab,并循环修改tab样式
    00五大原则(转)
    win7 & IIS7.5 HTTP 错误 404.17 Not Found 请求的内容似乎是脚本,因而将无法由静态
    人类的奇怪之处
    创业公司CEO每天应该做的13件事(转),个人感觉,同样有几条也适合于自己,或部门领导。
    购物车功能分析
    ASP.NET中DataTable的用法
    jQuery插件列表
    jQuery灯箱插件lightBox使用方法
    一个黑客与电脑白痴的聊天纪录
  • 原文地址:https://www.cnblogs.com/jukaiit/p/9401232.html
Copyright © 2011-2022 走看看