123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- //
- // 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)
- }
-
-
- }
|