iOS中选择相册照片添加到应用程序中
2016-03-07 17:47
393 查看
例如QQ、微信等的说说,评论等功能需要调用手机相册添加并发表图片。
再此就简单的介绍一下如何从相册中添加图片。
1、首先创建调用相册的按钮,再次是给UIImageView添加点击手势来实现。
2、实现点击手势的响应方法
这里添加一个提示框,提示选择是拍照(目前没有做,提示框中不显示)还是从相册选择照片。
判断的是iOS系统版本
3、实现选择方法
拍照的后续会发布。
再此就简单的介绍一下如何从相册中添加图片。
1、首先创建调用相册的按钮,再次是给UIImageView添加点击手势来实现。
self.tupianImageview = [[UIImageView alloc]initWithFrame:CGRectMake(SCREEN_WIDTH-69, 50, 20, 20)]; self.tupianImageview.image = [UIImage imageNamed:@"muzhi_tupian_1"]; self.tupianImageview.tag = 21; [self.view addSubview:self.tupianImageview]; self.tupianImageview.userInteractionEnabled = YES; UITapGestureRecognizer * PicTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(addPic:)]; PicTap.delegate = self; [self.tupianImageview addGestureRecognizer:PicTap];
2、实现点击手势的响应方法
这里添加一个提示框,提示选择是拍照(目前没有做,提示框中不显示)还是从相册选择照片。
-(void)addPic:(UITapGestureRecognizer *)tap{ if (IOS8) { UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"获取图片" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; UIAlertAction * defaultActionPic = [UIAlertAction actionWithTitle:@"相册" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { ZZPhotoController *photoController = [[ZZPhotoController alloc]init]; photoController.selectPhotoOfMax = 4; [photoController showIn:self result:^(id responseObject){ NSArray *array = (NSArray *)responseObject; // NSLog(@"-------------------%@",responseObject); // [self.imagePickerArray addObjectsFromArray:array]; self.imagePickerArray = [NSMutableArray arrayWithArray:array]; [self addbottomImage]; }]; }]; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){ UIAlertAction * defaultActionCamer = [UIAlertAction actionWithTitle:@"相机" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { ZZCameraController *cameraController = [[ZZCameraController alloc]init]; cameraController.takePhotoOfMax = 4; cameraController.isSaveLocal = NO; [cameraController showIn:self result:^(id responseObject){ // NSLog(@"%@",responseObject); NSArray *array = (NSArray *)responseObject; [self.imagePickerArray addObjectsFromArray:array]; [self addbottomImage]; }]; }]; [alert addAction:defaultActionCamer]; } UIAlertAction * cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }]; [alert addAction:cancelAction]; [alert addAction:defaultActionPic]; [self presentViewController:alert animated:YES completion:nil]; } else{ UIActionSheet * sheet; //判断是否支持相机 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { sheet =[ [UIActionSheet alloc]initWithTitle:@"获取图片" delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"取消" otherButtonTitles:@"相机",@"相册", nil]; }else{ sheet = [[UIActionSheet alloc]initWithTitle:@"获取图片" delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"取消" otherButtonTitles:@"相册", nil]; } [sheet showInView:self.view]; } }
判断的是iOS系统版本
#define IOS8 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 ? YES : NO)
3、实现选择方法
#import <Foundation/Foundation.h> #import "Common.h" typedef void(^ZZCameraResult)(id responseObject); @interface ZZCameraController : NSObject @property (assign, nonatomic) BOOL isSaveLocal; /* * 设置最多连拍张数 */ @property (assign, nonatomic) NSInteger takePhotoOfMax; /* * 设置图片返回类型 */ @property (assign, nonatomic) ZZImageType imageType; -(void)showIn:(UIViewController *)controller result:(ZZCameraResult)result; @end
#import "ZZCameraController.h" #import "ZZCameraPickerViewController.h" @interface ZZCameraController() @property (strong,nonatomic) ZZCameraPickerViewController *cameraPickerController; @end @implementation ZZCameraController -(ZZCameraPickerViewController *)cameraPickerController { if (!_cameraPickerController) { _cameraPickerController = [[ZZCameraPickerViewController alloc]init]; } return _cameraPickerCon cca4 troller; } -(void)showIn:(UIViewController *)controller result:(ZZCameraResult)result { self.cameraPickerController.CameraResult = result; //设置连拍最大张数 self.cameraPickerController.takePhotoOfMax = self.takePhotoOfMax; //设置返回图片类型 self.cameraPickerController.imageType = self.imageType; self.cameraPickerController.isSavelocal = self.isSaveLocal; [controller presentViewController:self.cameraPickerController animated:YES completion:nil]; } @end
拍照的后续会发布。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- JS 相册效果 自动播放[本地整合]
- jquery实现相册一下滑动两次的方法
- 用dom+xhtml+css制作的一个相册效果代码打包下载
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- jQuery实现带滚动导航效果的全屏滚动相册实例
- .net平台推送ios消息的实现方法
- js+css实现上下翻页相册代码分享