1
A
回答
19
我用你想要的视图控制器中调用雨燕3
//
// DSCameraHandler.swift
//
// Created by David Seek on 23.04.17.
// Copyright © 2016 David Seek. All rights reserved.
//
import MobileCoreServices
import UIKit
class DSCameraHandler: NSObject {
private let imagePicker = UIImagePickerController()
private let isPhotoLibraryAvailable = UIImagePickerController.isSourceTypeAvailable(.photoLibrary)
private let isSavedPhotoAlbumAvailable = UIImagePickerController.isSourceTypeAvailable(.savedPhotosAlbum)
private let isCameraAvailable = UIImagePickerController.isSourceTypeAvailable(.camera)
private let isRearCameraAvailable = UIImagePickerController.isCameraDeviceAvailable(.rear)
private let isFrontCameraAvailable = UIImagePickerController.isCameraDeviceAvailable(.front)
private let sourceTypeCamera = UIImagePickerControllerSourceType.camera
private let rearCamera = UIImagePickerControllerCameraDevice.rear
private let frontCamera = UIImagePickerControllerCameraDevice.front
var delegate: UINavigationControllerDelegate & UIImagePickerControllerDelegate
init(delegate_: UINavigationControllerDelegate & UIImagePickerControllerDelegate) {
delegate = delegate_
}
func getPhotoLibraryOn(_ onVC: UIViewController, canEdit: Bool) {
if !isPhotoLibraryAvailable && !isSavedPhotoAlbumAvailable { return }
let type = kUTTypeImage as String
if isPhotoLibraryAvailable {
imagePicker.sourceType = .photoLibrary
if let availableTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary) {
if availableTypes.contains(type) {
imagePicker.mediaTypes = [type]
imagePicker.allowsEditing = canEdit
}
}
} else if isPhotoLibraryAvailable {
imagePicker.sourceType = .savedPhotosAlbum
if let availableTypes = UIImagePickerController.availableMediaTypes(for: .savedPhotosAlbum) {
if availableTypes.contains(type) {
imagePicker.mediaTypes = [type]
}
}
} else {
return
}
imagePicker.allowsEditing = canEdit
imagePicker.delegate = delegate
onVC.present(imagePicker, animated: true, completion: nil)
}
func getCameraOn(_ onVC: UIViewController, canEdit: Bool) {
if !isCameraAvailable { return }
let type1 = kUTTypeImage as String
if isCameraAvailable {
if let availableTypes = UIImagePickerController.availableMediaTypes(for: .camera) {
if availableTypes.contains(type1) {
imagePicker.mediaTypes = [type1]
imagePicker.sourceType = sourceTypeCamera
}
}
if isRearCameraAvailable {
imagePicker.cameraDevice = rearCamera
} else if isFrontCameraAvailable {
imagePicker.cameraDevice = frontCamera
}
} else {
return
}
imagePicker.allowsEditing = canEdit
imagePicker.showsCameraControls = true
imagePicker.delegate = delegate
onVC.present(imagePicker, animated: true, completion: nil)
}
}
以下为:
extension ViewController: UINavigationControllerDelegate, UIImagePickerControllerDelegate {
func thisIsTheFunctionWeAreCalling() {
let camera = DSCameraHandler(delegate_: self)
let optionMenu = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
optionMenu.popoverPresentationController?.sourceView = self.view
let takePhoto = UIAlertAction(title: "Take Photo", style: .default) { (alert : UIAlertAction!) in
camera.getCameraOn(self, canEdit: true)
}
let sharePhoto = UIAlertAction(title: "Photo Library", style: .default) { (alert : UIAlertAction!) in
camera.getPhotoLibraryOn(self, canEdit: true)
}
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (alert : UIAlertAction!) in
}
optionMenu.addAction(takePhoto)
optionMenu.addAction(sharePhoto)
optionMenu.addAction(cancelAction)
self.present(optionMenu, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerEditedImage] as! UIImage
// image is our desired image
picker.dismiss(animated: true, completion: nil)
}
}
相关问题
- 1. 如何在推文中添加照片库(或照相机)的图像?
- 2. 从照片库中加载图像
- 3. 如何将照片库或照相机中的图像添加到我的Ipad应用程序中?
- 4. 从图库中加载ImageView上的图像(图片来自我的Google相册)
- 5. Android ListView与来自相机或图库的自定义图像
- 6. 拍摄来自相机的照片
- 7. Swift 3 - 在自定义相机视图上捕获照片
- 8. 设置ImageView与来自相机或图库的选定图像
- 9. 当我从图库中选择照片或从相机拍摄照片时,我的照片正在旋转?
- 10. 如何在swift中刷新照片库?
- 11. 如何从iPhone设备照片库中的相机中保存拍摄图像?
- 12. Android选择图片或照相机
- 13. 如何在照片库Swift中保存图片?
- 14. swift中相机和照片库的隐私问题
- 15. 要求用户从照片库或照相机中选择照片swift2
- 16. iOS:确定相册中的照片是否来自相机
- 17. 将图片库或相机中的图片上传到Firebase存储(Swift)
- 18. IOS:在UIImageView中插入一张来自相机的照片
- 19. 如何在Android中从图库或相机中选择图像?
- 20. 如何将照片库加载到UICollectionView? Swift
- 21. iPhone:如何从照片库或相机将像iPhone照片应用程序的“编辑”功能也有所
- 22. 如何获取相机拍摄的照片的路径ios swift
- 23. 如何在Android中使用Piccaso图像加载库来平滑图像加载?
- 24. 在Matlab中拼接来自不同相机的叠加图像
- 25. 相机照片图像全尺寸图像查看
- 26. jquery如何在div中加载照片?
- 27. iPhone应用程序为通过相机或照片库获取的图像生成缩略图图像
- 28. 如何使用Swift将照片库的最新照片添加到uiimageview?
- 29. 当我拍摄照片时,如何在相机上添加图片?
- 30. 如何在照相机拍摄照片后创建图像视图,然后将该照片显示在图像视图中
我已为你找出答案,但你得到的所有downvotes,因为这是没有网站“代码为你”。您必须提供代码,我们正在帮助您找到错误并改善您的代码。所以下次尝试谷歌解决方案,并获得帮助,如果你卡住了。现在:我已经为你发布了一个功能齐全的选项。玩得开心 –
我明白,这不是一个让人为我做这项工作的地方,我只是要求我可以从哪里开始。我不希望任何人为我写出来,尽管我很欣赏你发布的答案。 –
我不想冒犯你或任何配偶。只是想告诉你,为什么你会得到所有的投票。你得到我的赞成,所以它不会太坏,如果我的工作可以帮助你,我很高兴你的问题得到解答,所以你可以检查它。如果您需要进一步的帮助,请告诉我。 –