给iOS开发新手送点福利,简述UIImagePickerController的属性和用法

转载 2016年06月01日 18:15:53

给iOS开发新手送点福利,简述UIImagePickerController的属性和用法

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];

    });

}

给iOS开发新手送点福利,简述UIDatePicker的用法

给iOS开发新手送点福利,简述UIDatePicker的用法
  • qq_33777090
  • qq_33777090
  • 2016年06月01日 18:34
  • 693

给iOS开发新手送点福利,简述UIScrollView的属性和用法

ontentOffset 默认CGPointZero,用来设置scrollView的滚动偏移量。       // 设置scrollView的滚动偏移量       sc...
  • Flying_in_the_world
  • Flying_in_the_world
  • 2015年02月10日 16:59
  • 196

给iOS开发新手送点福利,简述UITextField的属性和用法

0.     enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的。 1.borderSty...
  • akka123
  • akka123
  • 2015年02月26日 11:46
  • 454

给iOS开发新手送点福利,简述UIPikerView的属性和用法

给iOS开发新手送点福利,简述UIPikerView的属性和用法
  • qq_33777090
  • qq_33777090
  • 2016年06月01日 18:14
  • 195

给iOS开发新手送点福利,简述文本属性Attributes的用法

给iOS开发新手送点福利,简述文本属性Attributes的用法 文本属性Attributes 1.NSKernAttributeName: @10 调整字句 kerning 字句...
  • ys410900345
  • ys410900345
  • 2014年05月16日 14:31
  • 16492

面试题--本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的k种水果

本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的k种水果,并且告知已经将所有员...
  • sayhello_world
  • sayhello_world
  • 2017年07月31日 15:31
  • 698

2017年末福利,快来看一看......

微信公众号关键字全网搜索最新排名【机器学习算法】:排名第一【机器学习】:排名第一【Python】:排名第三【算法】:排名第四年终奖不知道什么时候发?先不想了,看看能不能把眼前的这个抢了......听说...
  • Mbx8X9u
  • Mbx8X9u
  • 2017年12月20日 00:00
  • 298

iOS开发之UIImagePickerController详解

iOS开发之UIImagePickerController详解
  • l2i2j2
  • l2i2j2
  • 2016年04月13日 23:51
  • 3338

UIImagePickerController获取图片详细信息

透过UIImagePickerController,获取图片名字、唯一标示UTI、路径url NSURL *imageURL = [info valueForKey:UIImagePickerCon...
  • gl5773477
  • gl5773477
  • 2016年10月27日 11:35
  • 1452

iOS开发 关于UIImagePickerController 属性

UIImagePickerController 1.+(BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceTyp...
  • qq_33887387
  • qq_33887387
  • 2016年03月15日 22:35
  • 89
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:给iOS开发新手送点福利,简述UIImagePickerController的属性和用法
举报原因:
原因补充:

(最多只允许输入30个字)