最近正好项目里面要集成“打开照相机与本地相册选择图片”的功能,今天就在这边给大家写一个演示程序;打开相机拍摄后或者在相册中选择一张照片,然后将它显示在界面上。好了废话不多说,因为比较简单直接上源码。

首先,我们在头文件中添加需要用到的actionSheet控件,显示图片的UIImageView控件,并且加上所需要的协议

[objc]  view plain copy
  1. #import <UIKit/UIKit.h>
  2. @interface ImagePickerViewController : UIViewController<UIImagePickerControllerDelegate,UIActionSheetDelegate,UINavigationControllerDelegate>
  3. @property (strong, nonatomic) IBOutlet UIImageView *headImage;
  4. @property (strong, nonatomic) UIActionSheet *actionSheet;
  5. - (IBAction)clickPickImage:(id)sender;
  6. @end

通过点击我设置在界面中的按钮来呼出actionSheet控件,来选择相应的操作拍照或是在相册中选择相片,代码如下:

[objc]  view plain copy
  1. //
  2. //  ImagePickerViewController.m
  3. //  testAuto
  4. //
  5. //  Created by silicon on 15/5/9.
  6. //  Copyright (c) 2015年 silicon. All rights reserved.
  7. //
  8. #import "ImagePickerViewController.h"
  9. @interface ImagePickerViewController ()
  10. @end
  11. @implementation ImagePickerViewController
  12. @synthesize actionSheet = _actionSheet;
  13. - (void)viewDidLoad {
  14. [super viewDidLoad];
  15. // Do any additional setup after loading the view from its nib.
  16. }
  17. - (void)didReceiveMemoryWarning {
  18. [super didReceiveMemoryWarning];
  19. // Dispose of any resources that can be recreated.
  20. }
  21. /**
  22. @ 调用ActionSheet
  23. */
  24. - (void)callActionSheetFunc{
  25. if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
  26. self.actionSheet = [[UIActionSheet alloc] initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照", @"从相册选择", nil nil];
  27. }else{
  28. self.actionSheet = [[UIActionSheet alloc] initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消"destructiveButtonTitle:nil otherButtonTitles:@"从相册选择", nil nil];
  29. }
  30. self.actionSheet.tag = 1000;
  31. [self.actionSheet showInView:self.view];
  32. }
  33. // Called when a button is clicked. The view will be automatically dismissed after this call returns
  34. - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
  35. if (actionSheet.tag == 1000) {
  36. NSUInteger sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
  37. // 判断是否支持相机
  38. if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
  39. switch (buttonIndex) {
  40. case 0:
  41. //来源:相机
  42. sourceType = UIImagePickerControllerSourceTypeCamera;
  43. break;
  44. case 1:
  45. //来源:相册
  46. sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
  47. break;
  48. case 2:
  49. return;
  50. }
  51. }
  52. else {
  53. if (buttonIndex == 2) {
  54. return;
  55. } else {
  56. sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
  57. }
  58. }
  59. // 跳转到相机或相册页面
  60. UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
  61. imagePickerController.delegate = self;
  62. imagePickerController.allowsEditing = YES;
  63. imagePickerController.sourceType = sourceType;
  64. [self presentViewController:imagePickerController animated:YES completion:^{
  65. }];
  66. }
  67. }
  68. - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
  69. {
  70. [picker dismissViewControllerAnimated:YES completion:^{
  71. }];
  72. UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
  73. self.headImage.image = image;
  74. }
  75. /*
  76. #pragma mark - Navigation
  77. // In a storyboard-based application, you will often want to do a little preparation before navigation
  78. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  79. // Get the new view controller using [segue destinationViewController].
  80. // Pass the selected object to the new view controller.
  81. }
  82. */
  83. - (IBAction)clickPickImage:(id)sender {
  84. [self callActionSheetFunc];
  85. }
  86. @end

代码比较简单,也容易理解,运行的效果如下:

iOS打开照相机与本地相册选择图片相关推荐

  1. iOS 打开照相机与本地相册选择图片

    最近正好项目里面要集成"打开照相机与本地相册选择图片"的功能,今天就在这边给大家写一个演示程序:打开相机拍摄后或者在相册中选择一张照片,然后将它显示在界面上.好了废话不多说,因为比 ...

  2. IOS研究院之打开照相机与本地相册选择图片

    如下图所示 在本地相册中选择一张图片后,我们将他拷贝至沙盒当中,在客户端中将它的缩略图放在按钮旁边,这个结构其实和新浪微薄中选择图片后的效果一样.最终点击发送将按钮将图片2进制图片上传服务器. 下面我 ...

  3. uniapp 本地相册选择图片

    标题 uniapp 本地相册选择图片 export default {data(){return {imageLists:[]}} }methods:{delete(index){ // 获取该数组的 ...

  4. uni-app 从本地相册选择图片或使用相机拍照

    终于弄懂这个选择图片的流程,删除了很多不需要的地方,最终得到的就是这个版本 页面部分 <view>上传图片 {{imageList.length}}/{{count}}</view& ...

  5. unity 启动相机_Unity3D研究院之打开照相机与本地相册进行裁剪显示(三十三)...

    最近做项目需要用到这个功能,就是在Unity中调用Android本地相册或直接打开摄像机拍照并且裁剪一部分用于用户头像,今天研究了一下,那么研究出成果了MOMO一定要分享给大家.Unity与Andro ...

  6. 微信小程序:从本地相册选择图片、相机拍照,并将所选图片上传到服务器

    简介 小程序项目中有个需求:用户聊天时可以上传图片,还能支持拍照.于是学习了一下,分享给大家. 微信小程序中有个wx.chooseImage的方法可以快捷调用达到需求的效果. 具体实现 1.为了简化代 ...

  7. 微信小程序:选择从本地相册选择图片或使用相机拍照

    先弹出操作菜单,选择拍照还是从相册选择.根据用户选择进行相应操作.如图所示 代码如下: browse:function(){let that = this;wx.showActionSheet({it ...

  8. android从本地相册选择图片uri三星手机适配问题

    转载地址:http://blog.csdn.net/CathyChen0910/article/details/62456438 启动系统相册intent Intent intentFromGalle ...

  9. 微信小程序chooseImage(从本地相册选择图片或使用相机拍照)

    一.使用API wx.chooseImage(OBJECT) var util = require('../../utils/util.js') Page({data:{src:"../im ...

最新文章

  1. fastlane自动打包--详细介绍
  2. Forefront_TMG_2010-TMG建立站点间***
  3. AI科学家王怀清:机器视觉识别领域 或将出现AI独角兽
  4. 华为路由器qos car+nat+dhcp+vlan配置心得
  5. [再寄小读者之数学篇](2014-11-19 等差数列的部分和)
  6. quantrader和matlab不匹配,【Matlab量化投资】支持向量机择时策略
  7. Spring Boot整合Spring Data Redis-测试整合
  8. OpportunityStepValue and Bubble chart 1
  9. C# WPF文本框TextEdit不以科学计数法显示
  10. linux中jq的使用方法,linux使用jq工具解析json
  11. java虚拟机——JVM
  12. 2012禁用ip隧道 win_Windows 7下关闭IPV6隧道的技巧方法
  13. 区块链学习(3)--以太坊Dapp开发
  14. python拼音识别多音字的包_一个有意思还有用的Python包-汉字转换拼音
  15. 行业研究方法与框架合集
  16. ROMS简单应用——绘制区域温度图
  17. 基于 Transformer 模型的电影评论情感分类
  18. matlab三维图像分割,Matlab 沿三维任意方向切割CT图的仿真计算
  19. Criteria和DetachedCriteria
  20. Java实现邮件客户端

热门文章

  1. 卷积计算——1. 关于卷积的基本概念
  2. 聚苯乙烯PS彩色胶乳微球:红色/蓝色/黑色/绿色胶乳微球介绍和制备方法
  3. 初识Java-20道经典java基础题分享-一定有你不知道的方法
  4. 从1开始Tensorflow——1.超简单的神经网络
  5. 三大招式熟练Python数据分析
  6. my.资料__烹饪炼药
  7. 跨境电商产品的评价怎么获取?
  8. 12周精进计划(第三周):产品第一步 竞品分析
  9. c语言字符串字典序,字符串排序数组C语言 C语言 字符串数组字典排序
  10. 一场饭局,就能看透一个人(经典)