// // IHPhotoPicker.swift // Inhealth // // Created by weclouds on 2019/12/29. // Copyright © 2019 weclouds. All rights reserved. // import UIKit class IHPhotoPicker: NSObject , UIImagePickerControllerDelegate, UINavigationControllerDelegate { var target : UIViewController? var didClickImageBlock:((UIImage)->Void)? fileprivate let imagePicker = UIImagePickerController() override init() { super.init() } func showImagePicker(vc : UIViewController, completion: @escaping (UIImage)->Void) { self.didClickImageBlock = completion self.target = vc imagePicker.delegate = self show() } fileprivate func show(){ let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) alert.addAction(UIAlertAction(title: "相册", style: .default, handler: { (button) in self.imagePicker.sourceType = .photoLibrary self.imagePicker.delegate = self self.imagePicker.modalPresentationStyle = .fullScreen self.target?.present(self.imagePicker, animated: true, completion: { self.imagePicker.delegate = self }) })) alert.addAction(UIAlertAction(title: "相机", style: .default, handler: { (button) in self.imagePicker.sourceType = .camera self.imagePicker.delegate = self self.imagePicker.modalPresentationStyle = .fullScreen self.target?.present(self.imagePicker, animated: true, completion: { self.imagePicker.delegate = self }) })) alert.addAction(UIAlertAction(title: "取消", style: .cancel, handler: nil)) self.target?.present(alert, animated: true, completion: nil) } func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { imagePicker.dismiss(animated: true, completion: nil) } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { log.debug(info) guard let pickedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage else { return } if let block = self.didClickImageBlock { block(pickedImage) } imagePicker.dismiss(animated: true, completion: nil) } }