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

本文详细介绍了UIImagePickerController的使用方法,包括如何从相册中选择图片和视频,并展示在屏幕上播放。此外还讲解了UIImagePickerController的属性及如何实现代理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序言

在做项目还是学习过程中,我们经常会碰见这么一个类: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值