IOS开发之相册拾取器UIImagePickerController

原创 2012年03月30日 16:58:54

UIImagePickerController概述:

UIImagePickerController 类是获取选择图片和视频的用户接口。我们可以用这个controller选择我们所需要的图片和视频。对于这个类来说比较特殊,我们不能够任意定制,也不可以继承生成子类。

我们在用UIImagePickerController类的时候,只需要调用用代码实现其在什么位置显示和开始,当然我们之后可以选择所需的图片和影片,或者也可以不选择点击取消即可。

但是在我们调用接口之前,我们需要确认:

一:当前设备是否支持使用UIImagePickerController,这个时候我们需要调用isSourceTypeAvailable:方法判断。

二:查看符合的媒体类型(图片或者视频),这个时候我们调用availableMediaTypesForSourceType: 方法判断。

同时使用UIImagePickerController时,我们需要UIImagePickerControllerDelegate协议代理实现一些特定时间特定的动作。在调用摄像头的时候我们可以选择使用闪光灯,但是默认条件下对视频有10分钟的限制,需要用videoMaximumDuration属性更改默认时间,

三:之后我们设定界面媒体的属性  

1:sourceType  //从哪选取媒体
enum {
UIImagePickerControllerSourceTypePhotoLibrary,
UIImagePickerControllerSourceTypeCamera,
UIImagePickerControllerSourceTypeSavedPhotosAlbum
};
typedef NSUInteger UIImagePickerControllerSourceType;

2:   mediaTypes
mediaTypes用来确定再picker里显示那些类型的多媒体文件,图片?视频?
+ (NSArray *)availableMediaTypesForSourceType:(UIImagePickerControllerSourceType)sourceType

一共有三个可选的代理方法UIImagePickerControllerDelegate 
– imagePickerController:didFinishPickingMediaWithInfo:  
– imagePickerControllerDidCancel:  
– imagePickerController:didFinishPickingImage:editingInfo: 


-(void) pick{
[imagePicker takePicture];
}

- (IBAction)press:(id)sender {
imagePicker = [UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.showsCameraControls = NO;

UIView* view = [UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
view.backgroundColor = [UIColor redColor];
UIButton* button = [UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
button.backgroundColor = [UIColor blueColor];
[button addTarget:self action:@selector(pick) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:button];

CGRect newFrame = CGRectMake(0.0,436,320,44);
view.frame = newFrame;
imagePicker.cameraOverlayView = view;
[self presentModalViewController:imagePicker animated:YES];
}


-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
if ([info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString*)kUTTypeImage]) {
UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
} else if ([info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString*)kUTTypeMovie]) {
NSString* path = [info objectForKey:UIImagePickerControllerMediaURL] path];
   UISaveVideoAtPathToSavedPhotosAlbum(path, self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
}
[picker dismissModalViewControllerAnimated:YES];
}

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissModalViewControllerAnimated:YES];
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

获取照片的属性信息

获取照片的属性信息,比如gps,拍摄时间等。

ios中UIImagePickerController 图片选取器的使用

1。 定义 类变量: UIImagePickerController* picker_library_; 2。实现 UIImagePickerControllerDelegate 这个delega...

ios开发技巧之:相册功能的实现

iOS开发相册功能的实现即滚动视图的实现(UI阶段) --CoverFlow 现如今的生活中手机相册,微信朋友圈等滚动视图无处不在, 此外还有很多关于滚动视图的APP也天天出现在我们的...
  • vkooy
  • vkooy
  • 2017-03-23 14:04
  • 397

iOS开发-自定义专属相册 (详细)| 干货

我们在APP中点击照片,都会显示出大图,然后在大图的上面会有个保存照片的按钮,照片直接保存到了系统的相册中,但是因为公司产品的需要,让你创建和APP同名的相册保存在里面,那么就对了,可以看下具体的代码...

ios项目中安装和使用CocoaPods

Code4App 原创文章。转载请注明出处:http://code4app.com/article/cocoapods-install-usage CocoaPods是什么? 当你开发iOS应用时,会...

iOS开发之UIImagePickerController详解

iOS开发之UIImagePickerController详解
  • l2i2j2
  • l2i2j2
  • 2016-04-13 23:51
  • 2344

iOS 从相机或相册获取图片并裁剪

今天遇到一个用户头像上传的问题,需要从相册或者相机中读取图片。代码很简单,抽取关键部分,如下: //load user image - (void)UesrImageClicked { ...

iOS开发 使用UIImagePicker从相机或相册获取图片并裁剪

今天遇到一个用户头像上传的问题,需要从相册或者相机中读取图片。代码很简单,抽取关键部分,如下: [cpp] view plain copy //load user image  ...

IOS开发-UIDatePicker和UIPickerView(拾取器)

外观及作用                     UIDatePicker和事件相关,用来设置时间,选择时间等。UIPickerView则是自定义的,可以用作下拉列表等 运行结果 本...

ios开发学习笔记--调用相册或相机(UIImagePickerController)

Ios开发相册和相机的使用—UIImagePickerController 在开发中,有时候需要获取用户的相册或者调用相机采集图片,比如APP的头像,此时可以使用UIImagePickerContr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)