UIImagePickerController

一.属性

1.图片来源

(1)sourceType属性

// default value is UIImagePickerControllerSourceTypePhotoLibrary.
@property(nonatomic) UIImagePickerControllerSourceType sourceType; 

(2)UIImagePickerControllerSourceType

typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {
    UIImagePickerControllerSourceTypePhotoLibrary,
    UIImagePickerControllerSourceTypeCamera,
    UIImagePickerControllerSourceTypeSavedPhotosAlbum
} __TVOS_PROHIBITED;

2.允许预览图片

allowsEditing属性

// replacement for -allowsImageEditing; default value is NO.
@property(nonatomic) BOOL allowsEditing;     

3.代理

(1)delegate属性

@property(nullable,nonatomic,weak) id <UINavigationControllerDelegate,UIImagePickerControllerDelegate> delegate;

(2)UIImagePickerControllerDelegate协议方法

@protocol UIImagePickerControllerDelegate<NSObject>
@optional
// The picker does not dismiss itself; the client dismisses it in these callbacks.
// The delegate will receive one or the other, but not both, depending whether the user
// confirms or cancels.
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info;
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;

@end

二.info dictionary keys

  • // an NSString (UTI, i.e. kUTTypeImage)
    NSString *const UIImagePickerControllerMediaType;
  • // a UIImage
    NSString *const UIImagePickerControllerOriginalImage;
  • // a UIImage
    NSString *const UIImagePickerControllerEditedImage;
  • // an NSValue (CGRect)
    NSString *const UIImagePickerControllerCropRect;
  • // an NSURL
    NSString *const UIImagePickerControllerMediaURL;
  • // an NSURL that references an asset in the AssetsLibrary framework
    NSString *const UIImagePickerControllerReferenceURL;
  • // an NSDictionary containing metadata from a captured photo
    NSString *const UIImagePickerControllerMediaMetadata;
  • // a PHLivePhoto
    NSString *const UIImagePickerControllerLivePhoto;

三.程序举例

初始化

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    picker.delegate = self;
    [self presentViewController:picker animated:true completion:nil];

实现代理方法
取消

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [picker dismissViewControllerAnimated:true completion:nil];
}

选中图片

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [picker dismissViewControllerAnimated:true completion:nil];
}

你可能感兴趣的:(sourcetype,allowsEdit)