新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
调用相机拍照并获取图片和打开系统相册获取图片是我们经常见到的常用功能。其实这些功能做起来十分简单,几步即可。
创新互联专注于企业成都全网营销、网站重做改版、营口网站定制设计、自适应品牌网站建设、H5技术、成都做商城网站、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为营口等各大城市提供网站开发制作服务。
在info.plist文件中添加对照相机和相册获取的权限,如下图
初始化UIImagePickerController ,并添加相应设置,如下
需要添加UIImagePickerControllerDelegate和UINavigationControllerDelegate这两个代理,并在代理中实现相应方法,如下
根据不同的需求设置类型即可,如下:
使用系统相册的时候,首先判断是否有权限,没有权限的话,可以弹出提示框。
相册监听中的回调方法是在 子线程 中的,因此要改变UI布局的话,必须回到主线程
** 几个常用的类 **
**PHAsset **: 代表照片库中的一个资源,跟 ALAsset 类似,通过 PHAsset 可以获取和保存资源。每个PHAsset就是一张图片的详细信息,包括图片、位置、时间等。
** PHFetchOptions **: 获取资源时的参数,可以传 nil,即使用系统默认值。
** PHFetchResult **: 表示一系列的资源集合,也可以是相册的集合。
** PHAssetCollection **: 表示一个相册或者一个时刻,或者是一个智能相册(系统提供的特定的一系列相册,例如:最近删除,视频列表,收藏等等)。
** PHImageManager **: 用于处理资源的加载,加载图片的过程带有缓存处理,可以通过传入一个 PHImageRequestOptions 控制资源的输出尺寸等规格。
** PHImageRequestOptions **: 如上面所说,控制加载图片时的一系列参数。
在当前控制器中使用UIImagePickerController, 并实现UIImagePickerControllerDelegate 中的协议方法就可以访问相册。