iOS 图片相册调用封装
来源:互联网 发布:跟谁学网络老师好吗 编辑:程序博客网 时间:2024/05/04 13:51
开发项目中,经常会用到调用相册,拍照获取照片等等。于是特地把这个功能封装了一下,方便以后重复使用。
使用方法如下:
#import "LYImagePicker.h"[[LYImagePicker sharePicker] showPickerWith:self allowEdit:NO completeBlock:^(UIImage *image) { //image就是选择到的图片,并且压缩了一下 }];
self传入的是当前的UIViewController
allowEdit 是指选择图像时是否允许编辑
下面上代码
#import <UIKit/UIKit.h>@interface LYImagePicker : NSObject<UIImagePickerControllerDelegate,UINavigationControllerDelegate,UIActionSheetDelegate>+ (LYImagePicker *)sharePicker;- (void)showPickerWith:(UIViewController *)viewController allowEdit:(BOOL)allowEdit completeBlock:(void (^)(UIImage *image))image;@end
#import "LYImagePicker.h"@implementation LYImagePicker{ void (^ImageBlock)(UIImage *image); UIViewController *_viewController; BOOL _allowEdit;}static LYImagePicker* _picker;+ (LYImagePicker *)sharePicker{ if (!_picker) { _picker = [[LYImagePicker alloc]init]; } return _picker;}- (void)showPickerWith:(UIViewController *)viewController allowEdit:(BOOL)allowEdit completeBlock:(void (^)(UIImage *image))image{ UIActionSheet *sheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"从相册选择",@"拍一张", nil]; [sheet showInView:viewController.view]; _allowEdit = allowEdit; _viewController = viewController; ImageBlock = image;}- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex < 2) { [self showPickerView:buttonIndex]; }}- (void)showPickerView:(NSInteger)buttonIndex{ UIImagePickerController* picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.allowsEditing = _allowEdit; if (buttonIndex == 0) { picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; }else{ picker.sourceType = UIImagePickerControllerSourceTypeCamera; } [_viewController presentViewController:picker animated:YES completion:nil];}- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ [picker dismissViewControllerAnimated:YES completion:nil]; NSData *imageData; if (_allowEdit) { imageData = UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerEditedImage"], 0.5); }else{ imageData = UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"], 0.5); } UIImage *image = [UIImage imageWithData:imageData]; ImageBlock(image);}@end
有更好的建议请留言给我,感谢!
0 0
- iOS 图片相册调用封装
- ios调用相册或相机上传图片
- iOS 调用相册/相机/图片压缩
- iOS调用系统相册选取图片
- IOS调用相册和照相获取图片
- iOS调用相册或相机图片
- iOS调用相机 相册 选取图片
- iOS 调用相机 ,相册获取图片 并裁剪为正方形
- ios中调用相机,相册,选择多张图片
- iOS - 调用相机相册的方法 + 上传图片
- iOS 调用相册,拍照并上传图片详解
- iOS学习:调用相机和相册,选择图片上传
- iOS调用系统相册和相机选择图片
- iOS 调用相册,拍照并上传图片详解
- ios ipad里面调用系统相册图片不完整解决方法
- iOS 调用相册
- ios之相册调用
- iOS选取相册图片
- HDU 1300 Pearls
- HDOJ 1234 开门人和关门人
- 单机运行环境搭建之 --Centos6.4下webbench压力测试
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
- OC_省市区字典数组
- iOS 图片相册调用封装
- HDOJ 2028 Lowest Common Multiple Plus (求n个数的最小公倍数)
- 安卓学习资料
- NSObject 的实现分析
- Java参数传递问题
- 自己总结的获取验证码之后写入textview
- 面试技术类基础知识复习
- malloc/free与new/delete的区别
- 走进Run Loop的世界 (一):什么是Run Loop?