iOS开发利用ELCImagePicker第三方实现图片的多选
2015-05-08 17:18
330 查看
#import "ViewController.h" #import "ELCImagePickerController.h" #import <AssetsLibrary/AssetsLibrary.h> #import <MobileCoreServices/UTCoreTypes.h> @interface ViewController ()<UIActionSheetDelegate, UIImagePickerControllerDelegate,UINavigationControllerDelegate,ELCImagePickerControllerDelegate> @property (nonatomic,strong) UIImageView *imageView; @property (nonatomic,strong) UIImageView *imageView1; @end @implementation ViewController - (UIImageView *)imageView { if (!_imageView) { self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 64 , 200, 200)]; // [_imageView setContentMode:UIViewContentModeScaleAspectFit]; _imageView.layer.cornerRadius = 100; _imageView.clipsToBounds = YES; [self.view addSubview:_imageView]; } return _imageView; } - (UIImageView *)imageView1 { if (!_imageView1) { self.imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(100, 364 , 200, 200)]; _imageView1.layer.cornerRadius = 100; _imageView1.clipsToBounds = YES; [self.view addSubview:_imageView1]; } return _imageView1; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (IBAction)selectPhoto:(id)sender { UIActionSheet *_sheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"打开照相机", @"从相册中获取", nil]; [_sheet showInView:self.view]; } - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ switch (buttonIndex) { case 0: //选择照相机 [self takePhoto]; break; case 1: //选择相册 [self LocalPhoto]; break; default: break; } } - (void)takePhoto { UIImagePickerControllerSourceType sourcType = UIImagePickerControllerSourceTypeCamera; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { UIImagePickerController *picker = [[UIImagePickerController alloc]init]; picker.delegate = self; picker.sourceType = sourcType; [self presentViewController:picker animated:YES completion:^{ }]; }else{ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"无法调取相机,请检查" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil]; [alert show]; return; } } - (void)LocalPhoto { ELCImagePickerController *elcPicker = [[ELCImagePickerController alloc] initImagePicker]; elcPicker.maximumImagesCount = 9; //选择图像的最大数量设置为9 elcPicker.returnsOriginalImage = YES; //只返回fullScreenImage,不是fullResolutionImage elcPicker.returnsImage = YES; //如果是的 返回UIimage。如果没有,只返回资产位置信息 elcPicker.onOrder = YES; //对多个图像选择、显示和返回的顺序选择图像 elcPicker.mediaTypes = @[(NSString *)kUTTypeImage]; //支持图片和电影类型 elcPicker.imagePickerDelegate = self; [self presentViewController:elcPicker animated:YES completion:nil]; } -(void)elcImagePickerControllerDidCancel:(ELCImagePickerController *)picker { } //相册 - (void)elcImagePickerController:(ELCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSArray *)info { NSMutableArray *array = [NSMutableArray array]; [array removeAllObjects]; [self dismissViewControllerAnimated:YES completion:nil]; NSLog(@"%@", info); for (NSDictionary *dict in info) { if ([dict objectForKey:UIImagePickerControllerMediaType] == ALAssetTypePhoto){ if ([dict objectForKey:UIImagePickerControllerOriginalImage]){ //把图片取出来放到数组里面 UIImage* image=[dict objectForKey:UIImagePickerControllerOriginalImage]; [array addObject:image]; } }else { // NSLog(@"UIImagePickerControllerReferenceURL = %@", dict); } } self.imageView.image = array[0]; self.imageView1.image = array[1]; } #pragma mark - 照片选择代理方法 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { // 1. 获取编辑后的照片 UIImage *image; switch (picker.sourceType) { case UIImagePickerControllerSourceTypeCamera: image = info[@"UIImagePickerControllerOriginalImage"]; //将图片保存到相册 [self saveImageToPhotos:image]; break; case UIImagePickerControllerSourceTypePhotoLibrary: image = info[@"UIImagePickerControllerEditedImage"]; break; default: break; } // 2. 设置按钮的图像 self.imageView.image = image; // 3. 关闭照片选择控制器 [self dismissViewControllerAnimated:YES completion:nil]; } //将图片保存到相册 - (void)saveImageToPhotos:(UIImage*)savedImage { UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); } // 指定回调方法 - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo { NSString *msg = nil ; if(error != NULL){ msg = @"保存图片失败" ; }else{ msg = @"保存图片成功" ; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"保存图片结果提示" message:msg delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; } @end 第三方下载地址 http://pan.baidu.com/s/1qW6yXn2 或者https://github.com/B-Sides/ELCImagePickerController github上的和我手里版本竟然不一样,我是按照我手里的版本写的
相关文章推荐
- iOS开发:利用SDWebImage实现图片加载与缓存
- ios 使用ELCImagePicker实现相册照片多选和真机拍照调试
- iOS开发------简单实现图片多选功能(AssetsLibrary篇)
- iOS开发之ImageView复用实现图片无限轮播
- 【iOS开发】关于图片加载的第三方框架SDWebImage的使用
- iOS开发使用Picker View实现一个图片浏览的App
- iOS开发之ImageView复用实现图片无限轮播
- IOS开发-第三方SDWebImage下载网络图片的使用
- iOS开发之ImageView复用实现图片无限轮播
- iOS开发使用sdWebImage实现对tableView的cell加载图片淡入动画
- iOS开发------简单实现图片多选功能(Photos.framework篇)
- 李洪强iOS开发之 - 实现九宫格并使用SDWebImage下载图片
- iOS程序开发之使用PlaceholderImageView实现优雅的图片加载效果
- 仿照微信的效果,实现了一个支持多选、选原图和视频的图片选择器TZImagePickerController
- 【iOS开发-85】利用touch触摸事件:实现画板画画、撤销、清屏以及图片保存功能
- iOS 使用某个第三方相册多选时,拖到自己项目里面,编译报错VOKMultiImagePicker-iOS
- ios开发 利用AFNetworking实现同时上传字符串与图片数据
- 小菜鸟的第一篇文章,在学习RN,就当是做笔记吧,iOS开发RN中添加第三方库react-native-image-picker
- 安卓开发-利用smart-image-view来实现网络中的图片在手机上的显示
- iOS CATransition动画实现SDWebImage图片下载完成渐变动画