iOS学习:调用相机和相册,选择图片上传
2016-07-13 10:30
721 查看
今天在项目中要实现一个上传头像功能,点击修改头像行弹出拍照或者从相册选择来设置头像。
实现效果如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/20/cf3cc601de0b2b6c31c5a953654854f8)
方法B:另一种是通过AVFoundation.framework框架完全自定义拍照的界面和选择图片库界面。
1、调用接口前,我们需要先判断当前设备是否支持UIImagePickerController,用isSourceTypeAvailable:来判断是否可用。我直接在点击修改头像后调用chooseImage方法进行判断:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/20/626422e6f76534a141c83beef4bb007e)
判断是否支持相机
UIActionSheet是在iOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件,当不支持相机时不显示拍照选项。cancelButtonTitle 和 destructiveButtonTitle是系统自动的两项,otherButtonTitles是自己定义的项,注意,最后一个参数要是nil。
2、实现相应的Action Sheet的选项的事件,对应UIActionSheetDelegate中的 -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 方法:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/20/96c3c2fd3cc87b572b82c95cd9666e7a)
ActionSheetDelegate事件
3、实现ImagePicker delegate 事件,获得已拍摄或者选择的图片,最后调用写好的upload方法将图片上传到服务器。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/20/f2626995e4305f939387757aba9403c3)
选择获取图片类型
4、这里调用相机是系统自带的,默认提示都为英文,可以修改英文标题为中文,如cancel换为取消等。直接在项目的supporting files目录中的Info.plist中设置Localization native development region为China.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/20/9d13b3680c7c6592990f733c63d5a8c0)
提示文字中英文切换
5、保存图片
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/20/e3b1679fe29eb98fdbe23cac533dbe0d)
保存图片至沙盒
6、点击图片预览,放大缩小带动画。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/20/ce028903033df54c3e10450ccd971149)
图片预览
文/Smy(简书作者)
原文链接:http://www.jianshu.com/p/dfab715a4987
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
实现效果如下图:
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框架完全自定义
待补充.....文/Smy(简书作者)
原文链接:http://www.jianshu.com/p/dfab715a4987
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
相关文章推荐
- iOS 单例的正确姿势
- 关于iOS后台模式
- iOS推送通知的证书设置
- iOS学习笔记:交换Button中图片与文字的左右位置
- iOS键盘按下return和点击空白处时候收起
- 李洪强iOS开发之keychain的使用
- 个人iOS项目常用效果方法注意点集锦(上)
- 李洪强iOS开发支付集成之银联支付
- cordova iOS平台的插件开发
- iOS开发支付集成之银联支付
- IOS Dev Intro - GCD Series 01
- iOS开发支付集成之支付宝支付
- ios修改textField的placeholder的字体颜色大小
- 李洪强iOS开发支付集成之支付宝支付
- IOS Dev Intro - Dispatch Sync
- IOS Dev Intro - Thread Sync
- IOS Dev Intro - NSCondtion
- iOS开源项目HYBHelperKit
- iOS StoryBoard自适应布局
- iOS检测键盘输入语言类型