博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift3.0:照片选择
阅读量:5902 次
发布时间:2019-06-19

本文共 3366 字,大约阅读时间需要 11 分钟。

一、介绍

 图片选择或者拍照功能:

 1、选择相册中的图片或是拍照,都是通过UIImagePickerController控制器实例化一个对象,然后通过self.presentViewController方法推出界面显示。但是使用presentViewController的类需要实现UIImagePickerControllerDelegate、UINavigationController两个代理。

 2、UIImagePickerController可以通过isSourceTypeAvailable方法来判断设备是否支持照相机/图片库/相册功能。如果支持,可以通过sourceType属性来设置图片控制器的显示类型。类型一共分为3种:PhotoLibrary(照片库)、Camera(相机)、SavedPhotoAlbum(相册)

3、实现协议截图

 

二、实例

1、使用相册选择步骤:

  • 判断是否支持要使用的图片库或相册功能
  • 初始化图片控制器对象
  • 指定图片控制器对象的代理
  • 指定图片控制器的类型,前提是必须先导入MobileCoreServices.framework框架
  • 弹出显示图片控制器
  • 实现图片控制住器代理方法
func chooseImageFromAlbum(){                //判断是否支持要使用的图片库        if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {                        //初始化图片控制器            let picker = UIImagePickerController()                        //设置代理            picker.delegate = self                        //设置媒体类型            picker.mediaTypes = [kUTTypeImage as String,kUTTypeVideo as String]                        //设置允许编辑            picker.allowsEditing = true                        //指定图片控制器类型            picker.sourceType = .photoLibrary                        //弹出控制器,显示界面            self.present(picker, animated: true, completion: nil)        }        else{                        let alert = UIAlertView.init(title: "读取相册错误!", message: nil, delegate: nil, cancelButtonTitle: "确定")            alert.show()        }    }     //实现图片控制器代理方法 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {                //查看info对象        print(info)                //获取选择的原图        let originImage = info[UIImagePickerControllerOriginalImage] as! UIImage                //赋值,图片视图显示图片        self.pickerView.image = originImage                //图片控制器退出        picker.dismiss(animated: true, completion: nil)    }        //取消图片控制器代理    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {                //图片控制器退出        picker.dismiss(animated: true, completion: nil)    }

2、拍照步骤:

  • 判断是否支持拍照功能
  • 初始化图片控制器对象(可以设置是否允许编辑)
  • 指定图片控制器对象的代理
  • 指定图片控制器的类型
  • 弹出显示图片控制器
func takePhotoFromCamera() {                //判断是否支持相机        if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {                        //初始化图片控制器            let picker = UIImagePickerController()                        //设置代理            picker.delegate = self                        //设置媒体类型            picker.mediaTypes = [kUTTypeImage as String,kUTTypeVideo as String]                        //设置来源            picker.sourceType = UIImagePickerControllerSourceType.camera                        //设置镜头 front:前置摄像头  Rear:后置摄像头            if UIImagePickerController.isCameraDeviceAvailable(UIImagePickerControllerCameraDevice.front) {                picker.cameraDevice = UIImagePickerControllerCameraDevice.front            }                        //设置闪光灯(On:开、Off:关、Auto:自动)            picker.cameraFlashMode = UIImagePickerControllerCameraFlashMode.on                        //允许编辑            picker.allowsEditing = true                        //打开相机            self.present(picker, animated: true, completion: nil)        }        else{                        let alert = UIAlertView.init(title: "找不到相机!", message: nil, delegate: nil, cancelButtonTitle: "确定")            alert.show()        }    }

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/6444346.html
,如需转载请自行联系原作者
你可能感兴趣的文章
利用PDO导入导出数据库
查看>>
DDR3
查看>>
分支 统计字数
查看>>
艾级计算机的发展与挑战
查看>>
RocketMQ事务消息实战
查看>>
手把手教你做出好看的文本输入框
查看>>
zabbix 3.2.7 (源码包)安装部署
查看>>
vsCode 快捷键、插件
查看>>
网络最大流问题算法小结 [转]
查看>>
iOS推送消息报错误“Domain=NSCocoaErrorDomain Code=3000”的可能问题
查看>>
kvm-1
查看>>
leetcode 64. Minimum Path Sum
查看>>
textkit
查看>>
CentOS7+CDH5.14.0安装CDH错误排查: HiveServer2 该角色的进程已退出。该角色的预期状态为已启动...
查看>>
The Oregon Trail 俄勒冈之旅
查看>>
Excel VBA连接MySql 数据库获取数据
查看>>
Developing a Service Provider using Java API(Service Provider Interface)(转)
查看>>
BAE Flask UEditor 使用七牛云
查看>>
Bootstrap系列 -- 15. 下拉选择框select
查看>>
关于WinPE安装操作系统
查看>>