外部 UIViewCtrl 调用: 示例
相机 相册 通用类
import UIKit
class TyeCamPicker: NSObject,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
weak var eVC : UIViewController!
typealias YeCallback=(_ eImgOri:UIImage?, _ eImgEdit:UIImage?) -> Void
var eFunCallback:YeCallback!
init(eVC: UIViewController!) {
self.eVC = eVC
}
func yeGetImgFromPhotoLibrary(eFun: @escaping YeCallback){
eFunCallback = eFun
let eImgPickerCtrl = UIImagePickerController()
eImgPickerCtrl.delegate = self
eImgPickerCtrl.allowsEditing = true
eImgPickerCtrl.navigationBar.tintColor = UIColor.white
eImgPickerCtrl.sourceType = UIImagePickerController.SourceType.photoLibrary
eVC.present(eImgPickerCtrl, animated: true, completion: nil)
}
func yeGetImgFromCam(eFun: @escaping YeCallback){
eFunCallback = eFun
if (!UIImagePickerController.isSourceTypeAvailable(.camera)){
print("---没有Cam --")
return
}
let eImgPickerCtrl = UIImagePickerController()
eImgPickerCtrl.delegate = self
eImgPickerCtrl.allowsEditing = true
eImgPickerCtrl.sourceType = UIImagePickerController.SourceType.camera
eVC.present(eImgPickerCtrl, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
print("---数据类型: \( info[UIImagePickerController.InfoKey.mediaType] ?? "") --")
print("---图片路径: \( info[UIImagePickerController.InfoKey.imageURL] ?? "") --")
let eImgOri = info[UIImagePickerController.InfoKey.originalImage] as? UIImage
let eImgEdit = info[UIImagePickerController.InfoKey.editedImage] as? UIImage
if (nil != eFunCallback){
eFunCallback!(eImgOri, eImgEdit)
}
eVC.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
eVC.dismiss(animated: true, completion: nil)
}
}