ImagePIckerController
2015-10-29 21:17
351 查看
图片选取器:
通常用于照片的选取或者视频的选取,
继承与UINavigationController,所以也可以使用push
和 pop
的一些视图控制器切换效果.
iOS 获取图片有三种方法:
1. 直接调用摄像头拍照(拍照时,
需要手动将照片保存到本地,
系统不会自动保存成功后的照片)
2. 从相册中选择
3. 从图库中选择
UIImagePickerController 是系统提供的用来获取图片和视频的接口;
用UIImagePickerController
类来获取图片视频,大体分为以下几个步骤:
1. 初始化UIImagePickerController
类;
2. 设置UIImagePickerController
实例的数据来源类型;
3. 设置设置代理;
4. 如果需要做图片修改的话设置allowsEditing =yes。
一
使用步骤:
1: 实例化图像选取器对象
UIImagePickerController* imagePickerController = [[UIImagePickerController alloc] init]
2: 判断当前设配支持的数据来源
用这些数据来源的时候需要进行检测设备是否支持数据
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
NSLog(@"支持相机");
}
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
{
NSLog(@"支持图库");
}
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
NSLog(@"支持相片库");
}
3: 通过上一步获取当前设配支持的数据来源,
设置我们需要的数据来源
数据来源类型:
一共三种
enum {
UIImagePickerControllerSourceTypePhotoLibrary ,// 照片库模式。图像选取控制器以该模式显示时会浏览系统照片库的根目录。
UIImagePickerControllerSourceTypeCamera ,// 相机模式,图像选取控制器以该模式显示时可以进行拍照或摄像
UIImagePickerControllerSourceTypeSavedPhotosAlbum // 相机胶卷模式,图像选取控制器以该模式显示时会浏览相机胶卷目录
};
4: 检查支持的媒体来源类型
调用UIImagePickerController类的另一个静态方法
availableMediaTypesForSourceType:
返回的是字符串数组,kUTTypeImage表示静态图片,kUTTypeMovie表示视频。这两个字符串常量定义在MobileCoreServices框架中。
5: 实现代理方法
完成图片的选取
协议方法:
当用户取消完成后调用此方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
当用户选取完成时调用此方法,
选取的信息都在info中,
info 是一个字典,
其关键字如下
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info;
调用摄像头来获取资源
NSString *const UIImagePickerControllerMediaType ;指定用户选择的媒体类型(文章最后进行扩展)
NSString *const UIImagePickerControllerOriginalImage ;原始图片
NSString *const UIImagePickerControllerEditedImage ;修改后的图片
NSString *const UIImagePickerControllerCropRect ;裁剪尺寸
NSString *const UIImagePickerControllerMediaURL ;媒体的URL
NSString *const UIImagePickerControllerReferenceURL ;原件的URL
NSString *const UIImagePickerControllerMediaMetadata;当来数据来源是照相机的时候这个值才有效
KUTTypeImage
const CFStringRef kUTTypeImage ;抽象的图片类型
const CFStringRef kUTTypeJPEG ;
const CFStringRef kUTTypeJPEG2000 ;
const CFStringRef kUTTypeTIFF ;
const CFStringRef kUTTypePICT ;
const CFStringRef kUTTypeGIF ;
const CFStringRef kUTTypePNG ;
const CFStringRef kUTTypeQuickTimeImage ;
const CFStringRef kUTTypeAppleICNS
const CFStringRef kUTTypeBMP;
const CFStringRef kUTTypeICO;
KUTTypeMovie 包含 :
const CFStringRef kUTTypeAudiovisualContent ;抽象的声音视频
const CFStringRef kUTTypeMovie ;抽象的媒体格式(声音和视频)
const CFStringRef kUTTypeVideo ;只有视频没有声音
const CFStringRef kUTTypeAudio ;只有声音没有视频
const CFStringRef kUTTypeQuickTimeMovie ;
const CFStringRef kUTTypeMPEG ;
const CFStringRef kUTTypeMPEG4 ;
const CFStringRef kUTTypeMP3 ;
const CFStringRef kUTTypeMPEG4Audio ;
const CFStringRef kUTTypeAppleProtectedMPEG4Audio;
二
扩展应用:
常用属性详解:
//指定使用照相机模式,可以指定使用相册/照片库
imagepicker.sourceType = UIImagePickerControllerSourceTypeCamera;
//设置当拍照完或在相册选完照片后,是否跳到编辑模式进行图片剪裁。只有当showsCameraControls属性为true时才有效果
imagepicker.allowsEditing = YES;
canera 相关的属性方法
//所有含有cameraXXX的属性都必须要sourceType是UIImagePickerControllerSourceTypeCamera时设置才有效果,否则会有异常
//设置拍照时的下方的工具栏是否显示,如果需要自定义拍摄界面,则可把该工具栏隐藏
imagepicker.showsCameraControls = YES;
//设置使用后置摄像头,可以使用前置摄像头
imagepicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
//设置闪光灯模式
/*
typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraFlashMode) {
UIImagePickerControllerCameraFlashModeOff = -1,
UIImagePickerControllerCameraFlashModeAuto = 0,
UIImagePickerControllerCameraFlashModeOn = 1
};
*/
imagepicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
//设置相机支持的类型,拍照和录像
imagepicker.mediaTypes = @[(NSString*)kUTTypeImage,(NSString*)kUTTypeMovie];
//设置拍摄时屏幕的view的transform属性,可以实现旋转,缩放功能
// imagepicker.cameraViewTransform = CGAffineTransformMakeRotation(M_PI*45/180);
// imagepicker.cameraViewTransform = CGAffineTransformMakeScale(1.5, 1.5);
使用 imagepicker.cameraViewTransform = CGAffineTransformMakeRotation(M_PI*45/180);旋转45度的效果:
使用imagepicker.cameraViewTransform = CGAffineTransformMakeScale(1.5,
1.5);全屏的效果,同时imagepicker.showsCameraControls =NO;隐藏工具栏:
使用imagepicker.allowsEditing = YES;出现的图片编辑效果,只有当imagepicker.showsCameraControls
= YES;才有效果:
imagepicker.showsCameraControls = NO;
//拍照,会自动回调- (void)imagePickerController:(UIImagePickerController
*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info,对于自定义照相机界面,拍照后回调可以不退出实现连续拍照效果
//获取拍照的照片
[imagepicker takePicture];
三
自定义相机拍照画面
//设置拍照时的下方的工具栏是否显示,如果需要自定义拍摄界面,则可把该工具栏隐藏
imagepicker.showsCameraControls = NO;
UIToolbar* tool = [[UIToolbar alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-55, self.view.frame.size.width, 75)];
tool.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem* cancel = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelCamera)];
UIBarButtonItem* add = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(savePhoto)];
[tool setItems:[NSArray arrayWithObjects:cancel,add, nil]];
//把自定义的view设置到imagepickercontroller的overlay属性中
imagepicker.cameraOverlayView = tool;
//
// ViewController.m
// ImagePIckerController
//
// Created by xalo on 15/10/20.
// Copyright (c) 2015年
蓝鸥科技. All rights reserved.
//
#import
"ViewController.h"
@interface ViewController ()<UIActionSheetDelegate, UINavigationControllerDelegate,
UIImagePickerControllerDelegate>
@property (weak,
nonatomic)
IBOutlet UIView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)HandleBtnAction:(UIButton *)sender {
UIActionSheet *sheet ;
//判断是否支持相机
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
{
sheet = [[UIActionSheet alloc] initWithTitle:@"选择"
delegate:self cancelButtonTitle:@"取消"
destructiveButtonTitle:@"取消"
otherButtonTitles:@"拍照",@"从相册选择",
nil];
}
}
else
{
sheet = [[UIActionSheet alloc] initWithTitle:@"选择"
delegate:self cancelButtonTitle:nil
destructiveButtonTitle:@"取消"
otherButtonTitles:@"从相册选择",@"相机胶卷模式",
nil];
}
[sheet showInView: self.view];
}
//判断是否支持相机,
跳转到相机或者相册界面
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSInteger sourceType = 0;
//判断是否支持相机
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
switch (buttonIndex) {
case
0:
//取消
break;
case
1:
//相机
sourceType = UIImagePickerControllerSourceTypeCamera;
break;
case
2:
//从相册选择
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
break;
default:
break;
}
}
else
{
//当不支持相机时,
仅支持相册
switch (buttonIndex) {
case
0:
//取消
break;
case
1:
//从相册选择
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
break;
case
2:
//从相册胶卷模式
sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
break;
default:
break;
}
}
//查看支持的媒体来源类型
NSLog(@"支持的媒体来源:%@",[UIImagePickerController
availableMediaTypesForSourceType:sourceType]);
//跳转到相机界面
UIImagePickerController *imagePickerControlelr = [[UIImagePickerController alloc] init];
//设置代理,
需要制定两个协议 UINavigationControllerDelegate && UIImagePickerControllerDelegate
imagePickerControlelr.delegate = self;
//设置是否允许编辑
imagePickerControlelr.allowsEditing = YES;
//设置打开的数据类型
imagePickerControlelr.sourceType = sourceType;
//设置媒体来源(相机模式下)
// imagePickerControlelr.mediaTypes = @[@"public.image",@"public.movie"];
imagePickerControlelr.mediaTypes = @[@"public.movie"];
// imagePickerControlelr.mediaTypes = @[@"public.image"];
//imagePickerControlelr.mediaTypes = @[];
//显示当前控制器
[self presentViewController:imagePickerControlelr animated:YES
completion:nil];
}
#pragma mark -
#pragma mark - UIImagePickerControllerDelegate -
//通过实现
imagePickerController 的代理协议
实现
图片的选取
//
完成选取图片时
执行的方法
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//判断当获得的,
获取当前的媒体类型
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
NSLog(@"获取的媒体类型:%@",
mediaType);
//选取某个图片时,
退出当前视图控制器
[picker dismissViewControllerAnimated:YES completion:^{
NSLog(@"退出照片选取器");
}];
//获取编辑后的图片
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
NSLog(@"媒体的URL:
%@",[info objectForKey:UIImagePickerControllerReferenceURL]);
/*
此处info
有六个值
NSString *const UIImagePickerControllerMediaType ;指定用户选择的媒体类型(文章最后进行扩展)
NSString *const UIImagePickerControllerOriginalImage ;原始图片
NSString *const UIImagePickerControllerEditedImage ;修改后的图片
NSString *const UIImagePickerControllerCropRect ;裁剪尺寸
NSString *const UIImagePickerControllerMediaURL ;媒体的URL
NSString *const UIImagePickerControllerReferenceURL ;原件的URL
NSString *const UIImagePickerControllerMediaMetadata;当来数据来源是照相机的时候这个值才有效
*/
//将图片加载到视图上
[self additionImageViewWithImage:image];
}
//按下取消按钮式
执行的方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController
*)picker
{
[picker dismissViewControllerAnimated:YES completion:^{
NSLog(@"关闭相册");
}];
}
#pragma mark - imageView -
- (void)additionImageViewWithImage:(UIImage
*)image
{
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = self.imageView.bounds;
[self.imageView addSubview:imageView];
}
@end
通常用于照片的选取或者视频的选取,
继承与UINavigationController,所以也可以使用push
和 pop
的一些视图控制器切换效果.
iOS 获取图片有三种方法:
1. 直接调用摄像头拍照(拍照时,
需要手动将照片保存到本地,
系统不会自动保存成功后的照片)
2. 从相册中选择
3. 从图库中选择
UIImagePickerController 是系统提供的用来获取图片和视频的接口;
用UIImagePickerController
类来获取图片视频,大体分为以下几个步骤:
1. 初始化UIImagePickerController
类;
2. 设置UIImagePickerController
实例的数据来源类型;
3. 设置设置代理;
4. 如果需要做图片修改的话设置allowsEditing =yes。
一
使用步骤:
1: 实例化图像选取器对象
UIImagePickerController* imagePickerController = [[UIImagePickerController alloc] init]
2: 判断当前设配支持的数据来源
用这些数据来源的时候需要进行检测设备是否支持数据
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
NSLog(@"支持相机");
}
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
{
NSLog(@"支持图库");
}
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
NSLog(@"支持相片库");
}
3: 通过上一步获取当前设配支持的数据来源,
设置我们需要的数据来源
数据来源类型:
一共三种
enum {
UIImagePickerControllerSourceTypePhotoLibrary ,// 照片库模式。图像选取控制器以该模式显示时会浏览系统照片库的根目录。
UIImagePickerControllerSourceTypeCamera ,// 相机模式,图像选取控制器以该模式显示时可以进行拍照或摄像
UIImagePickerControllerSourceTypeSavedPhotosAlbum // 相机胶卷模式,图像选取控制器以该模式显示时会浏览相机胶卷目录
};
4: 检查支持的媒体来源类型
调用UIImagePickerController类的另一个静态方法
availableMediaTypesForSourceType:
返回的是字符串数组,kUTTypeImage表示静态图片,kUTTypeMovie表示视频。这两个字符串常量定义在MobileCoreServices框架中。
5: 实现代理方法
完成图片的选取
协议方法:
当用户取消完成后调用此方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
当用户选取完成时调用此方法,
选取的信息都在info中,
info 是一个字典,
其关键字如下
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info;
调用摄像头来获取资源
NSString *const UIImagePickerControllerMediaType ;指定用户选择的媒体类型(文章最后进行扩展)
NSString *const UIImagePickerControllerOriginalImage ;原始图片
NSString *const UIImagePickerControllerEditedImage ;修改后的图片
NSString *const UIImagePickerControllerCropRect ;裁剪尺寸
NSString *const UIImagePickerControllerMediaURL ;媒体的URL
NSString *const UIImagePickerControllerReferenceURL ;原件的URL
NSString *const UIImagePickerControllerMediaMetadata;当来数据来源是照相机的时候这个值才有效
KUTTypeImage
const CFStringRef kUTTypeImage ;抽象的图片类型
const CFStringRef kUTTypeJPEG ;
const CFStringRef kUTTypeJPEG2000 ;
const CFStringRef kUTTypeTIFF ;
const CFStringRef kUTTypePICT ;
const CFStringRef kUTTypeGIF ;
const CFStringRef kUTTypePNG ;
const CFStringRef kUTTypeQuickTimeImage ;
const CFStringRef kUTTypeAppleICNS
const CFStringRef kUTTypeBMP;
const CFStringRef kUTTypeICO;
KUTTypeMovie 包含 :
const CFStringRef kUTTypeAudiovisualContent ;抽象的声音视频
const CFStringRef kUTTypeMovie ;抽象的媒体格式(声音和视频)
const CFStringRef kUTTypeVideo ;只有视频没有声音
const CFStringRef kUTTypeAudio ;只有声音没有视频
const CFStringRef kUTTypeQuickTimeMovie ;
const CFStringRef kUTTypeMPEG ;
const CFStringRef kUTTypeMPEG4 ;
const CFStringRef kUTTypeMP3 ;
const CFStringRef kUTTypeMPEG4Audio ;
const CFStringRef kUTTypeAppleProtectedMPEG4Audio;
二
扩展应用:
常用属性详解:
//指定使用照相机模式,可以指定使用相册/照片库
imagepicker.sourceType = UIImagePickerControllerSourceTypeCamera;
//设置当拍照完或在相册选完照片后,是否跳到编辑模式进行图片剪裁。只有当showsCameraControls属性为true时才有效果
imagepicker.allowsEditing = YES;
canera 相关的属性方法
//所有含有cameraXXX的属性都必须要sourceType是UIImagePickerControllerSourceTypeCamera时设置才有效果,否则会有异常
//设置拍照时的下方的工具栏是否显示,如果需要自定义拍摄界面,则可把该工具栏隐藏
imagepicker.showsCameraControls = YES;
//设置使用后置摄像头,可以使用前置摄像头
imagepicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
//设置闪光灯模式
/*
typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraFlashMode) {
UIImagePickerControllerCameraFlashModeOff = -1,
UIImagePickerControllerCameraFlashModeAuto = 0,
UIImagePickerControllerCameraFlashModeOn = 1
};
*/
imagepicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
//设置相机支持的类型,拍照和录像
imagepicker.mediaTypes = @[(NSString*)kUTTypeImage,(NSString*)kUTTypeMovie];
//设置拍摄时屏幕的view的transform属性,可以实现旋转,缩放功能
// imagepicker.cameraViewTransform = CGAffineTransformMakeRotation(M_PI*45/180);
// imagepicker.cameraViewTransform = CGAffineTransformMakeScale(1.5, 1.5);
使用 imagepicker.cameraViewTransform = CGAffineTransformMakeRotation(M_PI*45/180);旋转45度的效果:
使用imagepicker.cameraViewTransform = CGAffineTransformMakeScale(1.5,
1.5);全屏的效果,同时imagepicker.showsCameraControls =NO;隐藏工具栏:
使用imagepicker.allowsEditing = YES;出现的图片编辑效果,只有当imagepicker.showsCameraControls
= YES;才有效果:
imagepicker.showsCameraControls = NO;
//拍照,会自动回调- (void)imagePickerController:(UIImagePickerController
*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info,对于自定义照相机界面,拍照后回调可以不退出实现连续拍照效果
//获取拍照的照片
[imagepicker takePicture];
三
自定义相机拍照画面
//设置拍照时的下方的工具栏是否显示,如果需要自定义拍摄界面,则可把该工具栏隐藏
imagepicker.showsCameraControls = NO;
UIToolbar* tool = [[UIToolbar alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-55, self.view.frame.size.width, 75)];
tool.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem* cancel = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelCamera)];
UIBarButtonItem* add = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(savePhoto)];
[tool setItems:[NSArray arrayWithObjects:cancel,add, nil]];
//把自定义的view设置到imagepickercontroller的overlay属性中
imagepicker.cameraOverlayView = tool;
//
// ViewController.m
// ImagePIckerController
//
// Created by xalo on 15/10/20.
// Copyright (c) 2015年
蓝鸥科技. All rights reserved.
//
#import
"ViewController.h"
@interface ViewController ()<UIActionSheetDelegate, UINavigationControllerDelegate,
UIImagePickerControllerDelegate>
@property (weak,
nonatomic)
IBOutlet UIView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)HandleBtnAction:(UIButton *)sender {
UIActionSheet *sheet ;
//判断是否支持相机
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
{
sheet = [[UIActionSheet alloc] initWithTitle:@"选择"
delegate:self cancelButtonTitle:@"取消"
destructiveButtonTitle:@"取消"
otherButtonTitles:@"拍照",@"从相册选择",
nil];
}
}
else
{
sheet = [[UIActionSheet alloc] initWithTitle:@"选择"
delegate:self cancelButtonTitle:nil
destructiveButtonTitle:@"取消"
otherButtonTitles:@"从相册选择",@"相机胶卷模式",
nil];
}
[sheet showInView: self.view];
}
//判断是否支持相机,
跳转到相机或者相册界面
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSInteger sourceType = 0;
//判断是否支持相机
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
switch (buttonIndex) {
case
0:
//取消
break;
case
1:
//相机
sourceType = UIImagePickerControllerSourceTypeCamera;
break;
case
2:
//从相册选择
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
break;
default:
break;
}
}
else
{
//当不支持相机时,
仅支持相册
switch (buttonIndex) {
case
0:
//取消
break;
case
1:
//从相册选择
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
break;
case
2:
//从相册胶卷模式
sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
break;
default:
break;
}
}
//查看支持的媒体来源类型
NSLog(@"支持的媒体来源:%@",[UIImagePickerController
availableMediaTypesForSourceType:sourceType]);
//跳转到相机界面
UIImagePickerController *imagePickerControlelr = [[UIImagePickerController alloc] init];
//设置代理,
需要制定两个协议 UINavigationControllerDelegate && UIImagePickerControllerDelegate
imagePickerControlelr.delegate = self;
//设置是否允许编辑
imagePickerControlelr.allowsEditing = YES;
//设置打开的数据类型
imagePickerControlelr.sourceType = sourceType;
//设置媒体来源(相机模式下)
// imagePickerControlelr.mediaTypes = @[@"public.image",@"public.movie"];
imagePickerControlelr.mediaTypes = @[@"public.movie"];
// imagePickerControlelr.mediaTypes = @[@"public.image"];
//imagePickerControlelr.mediaTypes = @[];
//显示当前控制器
[self presentViewController:imagePickerControlelr animated:YES
completion:nil];
}
#pragma mark -
#pragma mark - UIImagePickerControllerDelegate -
//通过实现
imagePickerController 的代理协议
实现
图片的选取
//
完成选取图片时
执行的方法
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//判断当获得的,
获取当前的媒体类型
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
NSLog(@"获取的媒体类型:%@",
mediaType);
//选取某个图片时,
退出当前视图控制器
[picker dismissViewControllerAnimated:YES completion:^{
NSLog(@"退出照片选取器");
}];
//获取编辑后的图片
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
NSLog(@"媒体的URL:
%@",[info objectForKey:UIImagePickerControllerReferenceURL]);
/*
此处info
有六个值
NSString *const UIImagePickerControllerMediaType ;指定用户选择的媒体类型(文章最后进行扩展)
NSString *const UIImagePickerControllerOriginalImage ;原始图片
NSString *const UIImagePickerControllerEditedImage ;修改后的图片
NSString *const UIImagePickerControllerCropRect ;裁剪尺寸
NSString *const UIImagePickerControllerMediaURL ;媒体的URL
NSString *const UIImagePickerControllerReferenceURL ;原件的URL
NSString *const UIImagePickerControllerMediaMetadata;当来数据来源是照相机的时候这个值才有效
*/
//将图片加载到视图上
[self additionImageViewWithImage:image];
}
//按下取消按钮式
执行的方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController
*)picker
{
[picker dismissViewControllerAnimated:YES completion:^{
NSLog(@"关闭相册");
}];
}
#pragma mark - imageView -
- (void)additionImageViewWithImage:(UIImage
*)image
{
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = self.imageView.bounds;
[self.imageView addSubview:imageView];
}
@end
相关文章推荐
- TCP/IP协议族概述
- js杨辉三角
- 开源还是商用?十大云运维监控工具横评
- linux笔记:目录处理命令ls,mkdir,cd,pwd,rmdir,cp,mv,rm
- Oracle学习【索引及触发器】
- MyEclipse中安装反编译插件
- reload基础
- 蓝懿iOS 技术内容和心得 10。29技术内容交流和心得分享
- 小岛场景搭建
- LeetCode----Implement Queue using Stacks
- hdu4300Clairewd’s message kmp
- caffe-ubuntu14.04+64bit环境配置说明(GPU下运行)
- 使用Android Studio进行NDK开发
- hdu2317 Nasty Hacks
- 安全参透之旅第2章 Zenmap工具使用第二节
- 初始化bf518中断
- OC点语法和变量作用域
- 贴一个高精加= =纪念某道有毒的题
- 关于Mac中库文件和包含文件搜索路径
- 一道题(4)