IOS 学习--- UIImagePickerController的使用

获取相册图片

    //创建imgPickerCtrl
    UIImagePickerController *imgPickerCtrl = [[UIImagePickerController alloc] init];
    
    //设置代理
    imgPickerCtrl.delegate = self;
    //设置资源类型
    imgPickerCtrl.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    //弹出模态
    [self presentViewController:imgPickerCtrl animated:YES completion:nil];

调用摄像头拍摄照片

   
   //判断一下是否支持拍摄
    BOOL isAvailable = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
    if (!isAvailable) {
   //如果不支持,弹出提示框
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"当前没有可用摄像头" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
        [alertView show];
        
        return;
    }
    //支持就创建UIImagePickerController
    UIImagePickerController *pickerCtrl = [[UIImagePickerController alloc] init];
    
    //设置代理
    pickerCtrl.delegate = self;
    
    //设置sourceType
    pickerCtrl.sourceType = UIImagePickerControllerSourceTypeCamera;
    
    [self presentViewController:pickerCtrl animated:YES completion:nil];

获取本地视频

    UIImagePickerController *imgPickerCtrl = [[UIImagePickerController alloc] init];
    
    imgPickerCtrl.delegate = self;
    
    imgPickerCtrl.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    
    //自定媒体类型
    imgPickerCtrl.mediaTypes = @[@"public.movie"];
    
    [self presentViewController:imgPickerCtrl animated:YES completion:nil];

调用摄像头拍摄视频

UIImagePickerController *imgPickerCtrl = [[UIImagePickerController alloc] init];
    
    imgPickerCtrl.delegate = self;
    
    imgPickerCtrl.sourceType = UIImagePickerControllerSourceTypeCamera;
    
    imgPickerCtrl.mediaTypes = @[@"public.movie"];
    
    [self presentViewController:imgPickerCtrl animated:YES completion:nil];



实现代理方法

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    NSLog(@"info:%@",info);
   
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
    if ([mediaType isEqualToString:@"public.image"]) {
        //获取选中的图片
        UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage];
        _imgView.image = img;
        
        //如果图片是通过camera拍摄的,则保存到本地
        if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
            //将图片写到本地
            UIImageWriteToSavedPhotosAlbum(img, self , @selector(image:didFinishSavingWithError:contextInfo:), nil);
        }
    }else if ([mediaType isEqualToString:@"public.movie"]) {
    
        //获取视图的url
        NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
        
        //播放器播放      
    }
    //关闭当前的模态视图
    [self dismissViewControllerAnimated:YES completion:nil];
}

//图片保存成功后调用的方法
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {

    NSLog(@"图片保存成功");
    
}



转载于:https://my.oschina.net/zhangqy/blog/506059

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值