您的位置:首页 > 产品设计 > UI/UE

UIImagePickerController--查看相册中的照片和视频

2016-10-24 17:50 381 查看

序言

在做项目还是学习过程中,我们经常会碰见这么一个类:UIImagePickerController,它到底是干什么的呢?到底有什么用呢?又怎样用呢?今天就让我们来聊一聊UIImagePickerController

这里就讲到了我们经常使用到的一个功能,从相册中查看照片,选中照片的时候可以显示在屏幕上,再者就是查看相册中的视频并且播放,下面让我们来看一下它的简单使用方法。

UIImagePickerController继承于UINavigationController,相册资源的访问可以通过它来获取,它是一个独立的导航控制器,一般而言,我们都是通过模态窗口的方式来弹出。另外,它有两个代理协议:UINavigationControllerDelegate和UIImagePickerControllerDelegate,而图片的选取必须实现UIImagePickerControllerDelegate,以监听选择的资源。

属性介绍:

sourceType有三种类型,分别为:

01、UIImagePickerControllerSourceTypePhotoLibrary,所有同步到iPhone的图片以及用户拍摄的图片在内的任何相册

02、UIImagePickerControllerSourceTypeCamera,允许用户使用iPhone内置的摄像头进行拍照

03、UIImagePickerControllerSourceTypeSavedPhotosAlbum仅含相册

代码:

//选择图片并显示
- (IBAction)selectImage:(UIButton *)sender {

//创建图片选择器
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
//设置来源类型
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
//设置代理
imagePicker.delegate = self;
//模态弹出相册
[self presentViewController:imagePicker animated:YES completion:nil];

}
//从相册中选择视频并播放
- (IBAction)selectVideo:(UIButton *)sender {

UIImagePickerController *videoPicker = [[UIImagePickerController alloc] init];
videoPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
//设置媒体类型:照片public.image或视频public.movie
videoPicker.mediaTypes = @[@"public.movie"];
videoPicker.delegate = self;

[self presentViewController:videoPicker animated:YES completion:nil];

}
//媒体选取完成后调用的代理方法,info字典中包含了很多数据
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {

NSString *mediaType = info[UIImagePickerControllerMediaType];
//判断是照片or视频
if ([mediaType isEqualToString:@"public.image"]) {

UIImage *image = info[UIImagePickerControllerOriginalImage];
self.imgView.image = image;

}else if ([mediaType isEqualToString:@"public.movie"]){

NSURL *movieURL = info[UIImagePickerControllerMediaURL];
/**
*  这里通过视频的url可以做很多事情,比如转化成NSData数据保存、上传等等,不赘述!
*/
}

[self dismissViewControllerAnimated:YES completion:nil];

}
//取消按钮的代理方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

NSLog(@"--------图片选择取消");
[self dismissViewControllerAnimated:YES completion:nil];
}


———————————————–end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息