Swift4.0 从相册中获取图片和拍照

mac2024-11-29  24

第一步

添加协议

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

  

 
最新回复(0)