博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 网络--图片库本地选取
阅读量:7081 次
发布时间:2019-06-28

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

  hot3.png

系统有自带的图库和相机功能,这里介绍一下如何用代码打开它们(模拟器是不支持打开相机的)和如何选取本地图片上传到图库

事前准备:

#import 
@interface ViewController ()
{ //设置为全局变量 UIImagePickerController*_pc1; UIImagePickerController*_pc2;}

一.UIImagePickerControllerSourceTypePhotoLibrary图片库

//初始化    _pc1=[[UIImagePickerController alloc]init];    //类型  PhotoLibrary--图库    _pc1.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;    //是否允许编辑    _pc1.allowsEditing=YES;    //签署代理    _pc1.delegate=self;    //显示    [self presentViewController:_pc1 animated:YES completion:^{        //显示完成后执行的代码    }];

注意:这时运行代码是不会进入图库的,还需要在info.plist文件中,加入

Privacy - Photo Library Usage Description

在弹出的窗口中,选择允许,就可以进入到图库页面了

二.UIImagePickerControllerSourceTypeCamera 相机(模拟器是无法使用的)

这里要增加一段判读语句,判断当前相机状态是否可以使用

//判断当前是否支持相机    //Authorization--授权  Status--地位    //Capture--获取  Device--工具    //Restricted--受限制  Denied--拒绝    AVAuthorizationStatus authStatus=[AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];    if (authStatus==AVAuthorizationStatusRestricted||authStatus==AVAuthorizationStatusDenied ){        NSLog(@"相机权限受限");        return;    }    //判断相机是否可以正常使用    //Available - 可获得的    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]==NO) {        NSLog(@"相机无法使用");        return;    }    _pc2=[[UIImagePickerController alloc]init];    _pc2.sourceType=UIImagePickerControllerSourceTypeCamera;    _pc2.delegate=self;    _pc2.allowsEditing=YES;    [self presentViewController:_pc2 animated:YES completion:^{        //显示后执行的代码    }];

三.回调方法

①取消的响应方法

//点击了Cancel的响应方法-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{    //退出当前界面    [_pk dismissViewControllerAnimated:YES completion:^{            }];}

②图片回调的方法,可以用来本地上传到图片库

//选择图片回调-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info{ //info是一个字典,储存的是编辑后的图片和原图 //UIImagePickerControllerEditedImage - 编辑后的图片 //UIImagePickerControllerOriginalImage - 原图 UIImage *image = info[@"UIImagePickerControllerEditedImage"]; //保存到图库 UIImageWriteToSavedPhotosAlbum(image, self, @selector(), nil); [_pk dismissViewControllerAnimated:YES completion:^{ }];}

 

转载于:https://my.oschina.net/sgcllr/blog/787211

你可能感兴趣的文章
VFIO透传
查看>>
Spring Boot 整合 docker
查看>>
一个网络管理员应该掌握的mysql管理命令
查看>>
display:none
查看>>
linux 比较重要的常用命令
查看>>
关于outlook的使用
查看>>
shell读取文件(保留原格式)
查看>>
python的一些高级语法
查看>>
网络设备-华三-防火墙F1020-IRF虚拟化实战终结配置篇
查看>>
大型网络设计及部署实验一
查看>>
理解进程的概念
查看>>
戴尔DellR910——企业必备服务器
查看>>
flowable测试
查看>>
linux开机自启动(开机启动)的三种方法
查看>>
ORACLE表分区
查看>>
hdoj2602_Bone Collector
查看>>
【转】如何解决系统事件出现DCOM 10009错误?
查看>>
C++_CFileFind文件查找
查看>>
VS_生成事件
查看>>
nginx+django1.6.8+uwsgi+virtualenv +virtualenvwrapper 多站点
查看>>