1.
资源的类型:
typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {
UIImagePickerControllerSourceTypePhotoLibrary,//本地的图片
UIImagePickerControllerSourceTypeCamera,//摄像头
UIImagePickerControllerSourceTypeSavedPhotosAlbum//相册
};
相关的方法和属性:
+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType;//判断当前的类型是否可用.
@property(nonatomic) UIImagePickerControllerSourceType sourceType;//设置当前的资源类型
2.媒体类型:(coremedia框架中的)
(NSString *)kUTTypeImage,//图片
(NSString *)kUTTypeMovie//视频
相关的方法和属性:
+ (NSArray *)availableMediaTypesForSourceType:(UIImagePickerControllerSourceType)sourceType; //资源类型下可用的媒体类型
@property(nonatomic,copy) NSArray *mediaTypes; //设置当前的媒体类型
设置上面的两个属性就能够正常的设置我们的ImagePickerController,如果想要设置的更加详细,或者是要实现自定义的imagepicker用到下面更加详细的配置
3.
媒体质量相关的宏:
typedef NS_ENUM(NSInteger, UIImagePickerControllerQualityType) {
UIImagePickerControllerQualityTypeHigh = 0, // highest quality
UIImagePickerControllerQualityTypeMedium = 1, // medium quality, suitable for transmission via Wi-Fi
UIImagePickerControllerQualityTypeLow = 2, // lowest quality, suitable for tranmission via cellular network
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0
UIImagePickerControllerQualityType640x480 = 3, // VGA quality
#endif
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0
UIImagePickerControllerQualityTypeIFrame1280x720 = 4,
UIImagePickerControllerQualityTypeIFrame960x540 = 5
#endif
};
对应的属性:
@property(nonatomic) UIImagePickerControllerQualityType videoQuality //质量
4.
设备支持的摄像头
typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraDevice) {
UIImagePickerControllerCameraDeviceRear,//后
UIImagePickerControllerCameraDeviceFront//前
};
相关的方法和属性:
+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice //对应的摄像头是否可用
@property(nonatomic) UIImagePickerControllerCameraDevice cameraDevice //当前的摄像头
5.
摄像头支持的类型:
typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraCaptureMode) {
UIImagePickerControllerCameraCaptureModePhoto,//拍照
UIImagePickerControllerCameraCaptureModeVideo//拍视频
};
相关方法和属性:
+ (NSArray *)availableCaptureModesForCameraDevice:(UIImagePickerControllerCameraDevice)cameraDevice //对饮摄像头支持的类型
@property(nonatomic) UIImagePickerControllerCameraCaptureMode cameraCaptureMode//
6.
闪光策略:
typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraFlashMode) {
UIImagePickerControllerCameraFlashModeOff = -1,
UIImagePickerControllerCameraFlashModeAuto = 0,
UIImagePickerControllerCameraFlashModeOn = 1
};
相关方法和属性:
+ (BOOL)isFlashAvailableForCameraDevice:(UIImagePickerControllerCameraDevice)cameraDevice //是否支持闪光
@property(nonatomic) UIImagePickerControllerCameraFlashMode cameraFlashMode//当前额闪光类型
7.其他
@property(nonatomic) BOOL allowsEditing //是否可编辑(有个调整的小框框)
@property(nonatomic) BOOL showsCameraControls //隐藏控制器上的工具蓝
@property(nonatomic,retain) UIView *cameraOverlayView //可以添加自定义的工具栏
@property(nonatomic) CGAffineTransform cameraViewTransform //旋转属性
- (void)takePicture NS_AVAILABLE_IOS(3_1);
- (BOOL)startVideoCapture NS_AVAILABLE_IOS(4_0);
- (void)stopVideoCapture NS_AVAILABLE_IOS(4_0);
返回结果的处理:
/*info 字典中的key*/
UIKIT_EXTERN NSString *const <span style="color:#FF0000;">UIImagePickerControllerMediaType</span>; // an NSString (UTI, i.e. kUTTypeImage)
UIKIT_EXTERN NSString *const <span style="color:#FF0000;">UIImagePickerControllerOriginalImage</span>; // a UIImage(不可编辑模式下)
UIKIT_EXTERN NSString *const <span style="color:#FF0000;">UIImagePickerControllerEditedImage</span>; // a UIImage(可编辑模式下)
UIKIT_EXTERN NSString *const UIImagePickerControllerCropRect; // an NSValue (CGRect)
UIKIT_EXTERN NSString *const <span style="color:#FF0000;">UIImagePickerControllerMediaURL</span>; // an NSURL (资源的url)
UIKIT_EXTERN NSString *const UIImagePickerControllerReferenceURL NS_AVAILABLE_IOS(4_1); // an NSURL that references an asset in the AssetsLibrary framework
UIKIT_EXTERN NSString *const UIImagePickerControllerMediaMetadata
//有结果返回时
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
//点击取消时
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
都应该退出pickerVC