• 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("保存成功")
    
    
            }
        }
    

      

     
  • 相关阅读:
    Week14 作业 C
    Week13 作业 E
    Week9 作业 C
    Week9 作业 B
    Week9 作业 A
    Week13 作业 C
    Week13 作业 B
    Week13 作业 A -CodeForces
    css--轮播图 yk弹框--固定定位和层级的应用
    css--定位
  • 原文地址:https://www.cnblogs.com/jukaiit/p/9401232.html
Copyright © 2020-2023  润新知