iOS学习:调用相机和相册,选择图片上传


今天在项目中要实现一个上传头像功能,点击修改头像行弹出拍照或者从相册选择来设置头像。


实现效果如下图:



iOS有两种的拍照和视频的方式:

方法A:直接使用UIImagePickerController,这个类提供了一个简单便捷的拍照与选择图片库里图片的功能。

方法B:另一种是通过AVFoundation.framework框架完全自定义拍照的界面和选择图片库界面。


一、使用UIImagePickerController的具体操作如下:

提示:首先对应的viewController必须遵循以下协议:<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>

1、调用接口前,我们需要先判断当前设备是否支持UIImagePickerController,用isSourceTypeAvailable:来判断是否可用。我直接在点击修改头像后调用chooseImage方法进行判断:

判断是否支持相机  

      UIActionSheet是在iOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件,当不支持相机时不显示拍照选项。cancelButtonTitle 和 destructiveButtonTitle是系统自动的两项,otherButtonTitles是自己定义的项,注意,最后一个参数要是nil。


2、实现相应的Action Sheet的选项的事件,对应UIActionSheetDelegate中的 -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 方法:

ActionSheetDelegate事件

3、实现ImagePicker delegate 事件,获得已拍摄或者选择的图片,最后调用写好的upload方法将图片上传到服务器。


选择获取图片类型

4、这里调用相机是系统自带的,默认提示都为英文,可以修改英文标题为中文,如cancel换为取消等。直接在项目的supporting files目录中的Info.plist中设置Localization native development region为China.


提示文字中英文切换

5、保存图片

保存图片至沙盒

6、点击图片预览,放大缩小带动画。

图片预览


二、通过AVFoundation.framework框架完全自定义



待补充.....



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,276评论 4 61
  • UIImagePickerController拍照与摄像 该类继承自UINavigationController类...
    小暖风阅读 4,734评论 3 3
  • 读取相册以及调取相机,将图片显示到imageView上 布局: 1.创建imageView 和 button 并为...
    请叫我周小帅阅读 3,561评论 0 2
  • 繁华落尽的世界,色彩总是那么的单一却又出奇的和谐。生活在轨道上,按计划进行是前所未有的安心和踏实。有句话说的很在理...
    回盏阅读 1,449评论 0 0
  • 因为之前看过一些关于时间管理的书,今天就将一些合适的方法拿来实践了,今天有以下几个地方做的不错的: 1.给自己建立...
    话说天晴了阅读 2,593评论 0 0