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(@"图片保存成功");
    
}


时间: 2024-12-17 03:35:24

UIImagePickerController的使用的相关文章

使用UIImagePickerController时3DTouch引起的Crash问题的解决--备用

一.crash的场景 程序中用到UIImagePickerController时,如果在IPhone6S上运行APP,当forceTouch 一个图片时程序会crash,并附带如下crash message: * Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘+[NSObject previewingContext:viewControllerForLocation:]: unre

UIImagePickerController从拍照、图库、相册获取图片

iOS 获取图片有三种方法: 1. 直接调用摄像头拍照 2. 从相册中选择 3. 从图库中选择 UIImagePickerController 是系统提供的用来获取图片和视频的接口: 用UIImagePickerController 类来获取图片视频,大体分为以下几个步骤: 1. 初始化UIImagePickerController 类: 2. 设置UIImagePickerController 实例的数据来源类型(下面解释): 3. 设置设置代理: 4. 如果需要做图片修改的话设置allows

ios中关于UIImagePickerController的一些知识总结

记得添加MobileCoreServices.framework 及导入#import <MobileCoreServices/MobileCoreServices.h> @interface PPViewController ()<UIActionSheetDelegate,UINavigationControllerDelegate, UIImagePickerControllerDelegate> { UIImagePickerController *_pickerContr

iOS:图像选取器控制器控件UIImagePickerController的详解

图像选择控制器:UIImagePickerController 功能:用于选取相册或相机等里面的照片. @interface UIImagePickerController : UINavigationController 枚举: //图片资源来源类型 typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) { UIImagePickerControllerSourceTypePhotoLibrary,          //图

iOS UIImagePickerController拍照与摄像

UIImagePickerController拍照与摄像 该类继承自UINavigationController类 步骤: 检查媒体来源模式是否可用 检查该来源模式下所支持的媒体类型 创建图像选取控制器,设置其属性并显示 在委托协议方法中处理 1.检查媒体来源 调用UIImagePickerController类的静态方法isSourceTypeAvailable来检查 sourceType是一个UIImagePickerControllerSourceType类型的枚举值,它表示图像选取控制器

图片选择器(UIImagePickerController)

1.// 1.判断数据源是否可用 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { // 2.打开相册 UIImagePickerController *ivPic = [[UIImagePickerController alloc] init]; ivPic.sourceType = UIImagePickerControllerSourceT

UIImagePickerController相册选择视频

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; //资源类型为视频库 NSString *requiredMediaType1 = ( NSString *)kUTTypeMovie; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //UIImagePickerControllerSourceTypeSaved

UIImagePickerController

// //  UIImagePickerController.h //  UIKit // //  Copyright (c) 2008-2015 Apple Inc. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UINavigationController.h> //与导航有关联 #import <UIKit/UIKitDefines.h> NS_ASSUME_NON

swift2.0 UIImagePickerController 拍照 相册 录像

系统 ios9.1 语言swift2.0 在app 里最常用的功能就是多媒体选择,首先我们storyboard 创建一个button 用于触发选择事件 @IBAction func selectImageAction(sender: AnyObject) { } 这时候通常会弹出来一个ActionSheet 上面有拍照 , 相册,录像 和取消 这几项.iOS 8 以后actionsheet 和 alertview 都统一用UIAlertController 方法调用,8.3以前actionshe

UIImagePickerController拍照与摄像

该类继承自UINavigationController类 步骤: 检查媒体来源模式是否可用 检查该来源模式下所支持的媒体类型 创建图像选取控制器,设置其属性并显示 在委托协议方法中处理 1.检查媒体来源 调用UIImagePickerController类的静态方法isSourceTypeAvailable来检查 sourceType是一个UIImagePickerControllerSourceType类型的枚举值,它表示图像选取控制器的3种不同的媒体来源模式 UIImagePickerCon