#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.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];
}
- (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;
elcPicker.returnsOriginalImage = YES;
elcPicker.returnsImage = YES;
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 {
}
}
self.imageView.image = array[0];
self.imageView1.image = array[1];
}
#pragma mark - 照片选择代理方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image;
switch (picker.sourceType) {
case UIImagePickerControllerSourceTypeCamera:
image = info[@"UIImagePickerControllerOriginalImage"];
[self saveImageToPhotos:image];
break;
case UIImagePickerControllerSourceTypePhotoLibrary:
image = info[@"UIImagePickerControllerEditedImage"];
break;
default:
break;
}
self.imageView.image = image;
[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:
或者https:
github上的和我手里版本竟然不一样,我是按照我手里的版本写的