第一步 添加協議 第二步 添加選擇方式 第三步 ...
第一步
添加協議
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("保存成功") } }