1.+(BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType;         // 检查指定源是否在设备上可用。

[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary];   //检查照片源是否可用

2.allowsEditing 默认NO

是否允许编辑

[imagePicker setAllowsEditing:YES];  // 允许编辑

3. videoMaximumDuration

设置UIImagePicker的最大视频持续时间.默认10分钟

4. + availableMediaTypesForSourceType: // 指定源可用的媒体种类

// 获得相机模式下支持的媒体类型

NSArray* availableMediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];

5. sourceType

设置UIImagePicker照片源类型,默认有3种。

UIImagePickerControllerSourceTypeCamera                 照相机

UIImagePickerControllerSourceTypePhotoLibrary          照片库(通过同步存放的,用户不能删除)

UIImagePickerControllerSourceTypeSavedPhotosAlbum    保存的照片(通过拍照或者截屏保存的,用户可以删除)

6.UIImagePicker使用步骤:

检查指定源是否可用. isSourceTypeAvailable:方法.
检查可用媒体(视频还是只能是图片) availableMediaTypesForSourceType:方法.
设置界面媒体属性mediaTypes property.
显示界面使用presentViewController:animated:completion:方法.iPad中是popover形式.需要确保sourceType有效.
相关操作,移除视图.

如果想创建一个完全自定义界面的image picker来浏览图片,使用 Assets Library Framework Reference中的类. (AV Foundation Programming Guide 中的 “Media Capture and Access to Camera” )

7.设置源

+ availableMediaTypesForSourceType: // 指定源可用的媒体种类
+ isSourceTypeAvailable: // 指定源是否在设备上可用
sourceType

// 运行相关接口前需要指明源类型.必须有效,否则抛出异常. picker已经显示的时候改变这个值,picker会相应改变来适应.

默认 UIImagePickerControllerSourceTypePhotoLibrary.

8.设置picker属性

allowsEditing //是否可编辑
delegate
mediaTypes

// 指示picker中显示的媒体类型.设置每种类型之前应用availableMediaTypesForSourceType:检查一下.如果为空或者array中类型都不可用,会发生异常.

默认 kUTTypeImage, 只能显示图片.

9.video选取参数

videoQuality //视频拍摄选取时的编码质量.只有mediaTypes包含kUTTypeMovie时有效.
videoMaximumDuration //秒,video最大记录时间,默认10分钟.只用当mediaTypes包含kUTTypeMovie时有效.

10.自定义界面

showsCameraControls 
// 指示 picker 是否显示默认的camera controls.默认是YES,设置成NO隐藏默认的controls来使用自定义的overlay view.(从而可以实现多选而不是选一张picker就dismiss了).只有 UIImagePickerControllerSourceTypeCamera源有效,否则NSInvalidArgumentException异常.

cameraOverlayView
//自定义的用于显示在picker之上的view.只有当源是UIImagePickerControllerSourceTypeCamera时有效.其他时候使用抛出NSInvalidArgumentException异常.

cameraViewTransform
//预先动画.只影响预先图像,对自定义的overlay view和默认的picker无效.只用当picker的源是UIImagePickerControllerSourceTypeCamera时有效,否则NSInvalidArgumentException异常.

11.选取媒体

– takePicture 
//使用摄像头选取一个图片。自定义overlay可以多选。已经有图片正在选取是调用无效,必须要等delegate收到 imagePickerController:didFinishPickingMediaWithInfo:消息后才能再次选取。非UIImagePickerControllerSourceTypeCamera源会导致异常。

– startVideoCapture
– stopVideoCapture
//结束视频选取,之后系统调用delegate的 imagePickerController:didFinishPickingMediaWithInfo:方法。

12.设置摄像头

cameraDevice //使用的镜头(默认后置的)
+ isCameraDeviceAvailable: // 摄像设备是否可用.
+ availableCaptureModesForCameraDevice: // 设备可用的选取模式
cameraCaptureMode //相机捕获模式
cameraFlashMode //闪光灯模式(默认自动)
+ isFlashAvailableForCameraDevice: // 是否有闪光能力

13.UIImagePickerControllerDelegate

使用UIImageWriteToSavedPhotosAlbum保存图像, UISaveVideoAtPathToSavedPhotosAlbum保存视频. 4.0后使用writeImageToSavedPhotosAlbum:metadata:completionBlock:保存元数据.

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

//包含选择的图片或者一个视频的URL,详见“Editing Information Keys.”
//如果是设置可编辑属性,那么picker会预显示选中的媒体,编辑后的与初始的都会保存在info中.

– imagePickerControllerDidCancel:
– imagePickerController:didFinishPickingImage:editingInfo://Deprecated in iOS 3.0

NSString *const UIImagePickerControllerMediaType;// 媒体类型
NSString *const UIImagePickerControllerOriginalImage;// 原始未编辑的图像
NSString *const UIImagePickerControllerEditedImage;// 编辑后的图像
NSString *const UIImagePickerControllerCropRect;// 源图像可编辑(有效?)区域
NSString *const UIImagePickerControllerMediaURL;// 视频的路径
NSString *const UIImagePickerControllerReferenceURL;// 原始选择项的URL
NSString *const UIImagePickerControllerMediaMetadata;// 只有在使用摄像头并且是图像类型的时候有效.包含选择图像信息的字典类型

14. UIImagePickerController小例子

UIImagePickerController的代理需要遵守这两个协议.<UIImagePickerControllerDelegate, UINavigationControllerDelegate>

#pragma mark 选择照片

- (void)selectPhoto

{

// 1. 首先判断照片源是否可用

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

// 0)实例化控制器

UIImagePickerController *picker = [[UIImagePickerController alloc]init];

// 1)设置照片源

[picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];

// 2) 设置允许修改

[picker setAllowsEditing:YES];

// 3) 设置代理

[picker setDelegate:self];

// 4) 显示控制器

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

} else {

NSLog(@"照片源不可用");

}

}

#pragma mark - imagePicker代理方法

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

{

   UIImage *image = info[@"UIImagePickerControllerEditedImage"];

    [_imageButton setImage:image forState:UIControlStateNormal];

    // 关闭照片选择器

    [self dismissViewControllerAnimated:YES completion:nil];

    // 需要将照片保存至应用程序沙箱,由于涉及到数据存储,同时与界面无关

    // 可以使用多线程来保存图像

     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

     // 保存图像

   // 1. 取图像路径

     NSArray *docs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *imagePath = [docs[0]stringByAppendingPathComponent:@"abc.png"];

  // 2. 转换成NSData保存

   NSData *imageData = UIImagePNGRepresentation(image);

     [imageData writeToFile:imagePath atomically:YES];

});

}

转载于:https://www.cnblogs.com/feife/p/4630391.html

简述UIImagePickerController的属性和用法相关推荐

  1. 简述UITableView的属性和用法

    UITableView内置了两种样式:UITableViewStylePlain,UITableViewStyleGrouped <UITableViewDataSource,UITableVi ...

  2. 简述UIButton的属性和用法

    UIButton属性 1.UIButton状态: UIControlStateNormal // 正常状态 UIControlStateHighlighted // 高亮状态 UIControlSta ...

  3. 简述UITextField的属性和用法

    0.     enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. 1.borderStyle ...

  4. 简述UIView的属性和用法

    1.alpha 设置视图的透明度.默认为1. // 完全透明 view.alpha = 0; // 不透明 view.alpha = 1; 2.clipsToBounds // 默认是NO,当设置为y ...

  5. 简述UISegment的属性和用法

    1.segmentedControlStyle 设置segment的显示样式. typedef NS_ENUM(NSInteger, UISegmentedControlStyle) { UISegm ...

  6. 简述UISlide的属性和用法

    1.   minimumValue  : 当值可以改变时,滑块可以滑动到最小位置的值,默认为0.0 _slider.minimumValue = 10.0; 2.   maximumValue : 当 ...

  7. 简述UIAlertView的属性和用法

    1.Title 获取或设置UIAlertView上的标题. 2.Message 获取或设置UIAlertView上的消息 UIAlertView *alertView = [[UIAlertView ...

  8. 简述UIScrollView的属性和用法

    1.   contentOffset 默认CGPointZero,用来设置scrollView的滚动偏移量. // 设置scrollView的滚动偏移量 scrollView.contentOffse ...

  9. css网页布局中文字排版的属性和用法

    前段时间,学习了几个大的网站的图文混排的方法.今天总结下, css网页布局中文字排版的相关属性以及用法 .包括:设定字体.颜色.大小.段落空白,首字下沉.首行缩进.中文字的截断.固定宽度词内折行(wo ...

最新文章

  1. 1、使用库函数计算两个向量的夹角
  2. 科大星云诗社动态20210313
  3. 谈谈- declare-styleable属性
  4. python声明一个长度为n的列表_python中长度为n的列表的置换
  5. Java集合Set、Map、HashSet、HashMap、TreeSet、TreeMap等
  6. 2019-0403视觉SLAM的学习第二讲
  7. 【java学习之路】(java SE篇)007.常用类
  8. 14个非常有用的jquery技巧,注意事项和最佳实践
  9. 批量重命名文件、图片、去除文件名括号
  10. Lombok之@Cleanup使用
  11. 单片机拟真电路图软件_单片机电流检测电路图大全(四款模拟电路设计原理图详解)...
  12. CUDA——线程束分化
  13. 无线网sdn服务器,云服务器:采用SDN网络有哪些优势?
  14. 对话阿里云张建锋:云计算正在内卷吗?丨钛度专访
  15. python安装配置教程win10_win10怎么安装python_win10安装python的图文步骤
  16. 家庭收支记账软件 (GO语言实现)
  17. [转载]Python中包装(wrapping)与代理(delegation)
  18. RNN及变体LSTM、GRU(在NILM中的应用)
  19. buuoj BJDCTF-2nd WP
  20. 2021.3.1版本idea搭建springMVC项目时出现的问题及解决

热门文章

  1. 记录千兆网卡变百兆速率事件(linux)以及查询、恢复方式
  2. 单片机--定时器/计数器实验
  3. 小米等安卓手机屏蔽实体按键和虚拟按键
  4. 如何写一篇法学论文?
  5. 携职教育:人力资源管理师证书有什么用?
  6. 月报|公众号 7 月文章汇总
  7. MT5 EA交易期货-挂单撤单
  8. 技术干货 | Modelica建模秘籍之状态变量
  9. 打印系统开发(61)——A4纸尺寸
  10. Servlet入门案例