mirror of
https://github.com/jphong1111/awesome-ios-developer.git
synced 2025-03-13 11:30:39 +07:00
Delete ImagePicker.swift
This commit is contained in:
parent
3f96f6935b
commit
47a7615e7b
@ -1,82 +0,0 @@
|
||||
//
|
||||
// ImagePicker.swift
|
||||
//
|
||||
// Created by JungpyoHong on 4/21/21.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public protocol ImagePickerDelegate: AnyObject {
|
||||
func didSelect(image: UIImage?)
|
||||
}
|
||||
|
||||
open class ImagePicker: NSObject {
|
||||
|
||||
private let imagePicker: UIImagePickerController
|
||||
private weak var presentationController: UIViewController?
|
||||
private weak var delegate: ImagePickerDelegate?
|
||||
|
||||
public init(presentationController: UIViewController, delegate: ImagePickerDelegate) {
|
||||
self.imagePicker = UIImagePickerController()
|
||||
|
||||
super.init()
|
||||
|
||||
self.presentationController = presentationController
|
||||
self.delegate = delegate
|
||||
self.imagePicker.delegate = self
|
||||
self.imagePicker.allowsEditing = true
|
||||
self.imagePicker.mediaTypes = ["public.image"]
|
||||
}
|
||||
|
||||
private func action(for type: UIImagePickerController.SourceType, title: String) -> UIAlertAction? {
|
||||
guard UIImagePickerController.isSourceTypeAvailable(type) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return UIAlertAction(title: title, style: .default) { [weak self] _ in
|
||||
self?.imagePicker.sourceType = type
|
||||
self?.presentationController?.present(self?.imagePicker ?? UIImagePickerController(), animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
public func present(from sourceView: UIView) {
|
||||
|
||||
let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
|
||||
if let action = self.action(for: .camera, title: "Take photo") {
|
||||
alertController.addAction(action)
|
||||
}
|
||||
if let action = self.action(for: .savedPhotosAlbum, title: "Camera roll") {
|
||||
alertController.addAction(action)
|
||||
}
|
||||
if let action = self.action(for: .photoLibrary, title: "Photo library") {
|
||||
alertController.addAction(action)
|
||||
}
|
||||
|
||||
alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
|
||||
self.presentationController?.present(alertController, animated: true)
|
||||
}
|
||||
|
||||
private func pickerController(_ controller: UIImagePickerController, didSelect image: UIImage?) {
|
||||
controller.dismiss(animated: true, completion: nil)
|
||||
|
||||
self.delegate?.didSelect(image: image)
|
||||
}
|
||||
}
|
||||
|
||||
extension ImagePicker: UIImagePickerControllerDelegate {
|
||||
|
||||
public func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
|
||||
self.pickerController(picker, didSelect: nil)
|
||||
}
|
||||
|
||||
public func imagePickerController(_ picker: UIImagePickerController,
|
||||
didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
|
||||
guard let image = info[.editedImage] as? UIImage else {
|
||||
return self.pickerController(picker, didSelect: nil)
|
||||
}
|
||||
self.pickerController(picker, didSelect: image)
|
||||
}
|
||||
}
|
||||
|
||||
extension ImagePicker: UINavigationControllerDelegate {
|
||||
}
|
Loading…
Reference in New Issue
Block a user