Objective-C --- - UIImagePickerController (梳理总结)

1.准备atom


//须要遵照两个协议spa

@interface ViewController ()<UINavigationControllerDelegate,UIImagePickerControllerDelegate>代理

//xib中拉一个按钮(跳转) 一个接收image的UIImageView(连线以下)图片

@property (weak, nonatomic) IBOutlet UIImageView *imgV;it

 

@property (nonatomic, strong) UIImagePickerController *picker;io

@end方法

 

2.设置im

 _picker = [[UIImagePickerController alloc]init];协议

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {img

        _picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    }

    //设置代理

    _picker.delegate = self;

// 涉及sourceType  是个枚举
//    typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {
//        UIImagePickerControllerSourceTypePhotoLibrary,
//        UIImagePickerControllerSourceTypeCamera,
//        UIImagePickerControllerSourceTypeSavedPhotosAlbum
//    } __TVOS_PROHIBITED;

3.进入相册 present (xib连线的)

- (IBAction)sender:(UIButton *)sender {

    [self presentViewController:_picker animated:YES completion:^{}];

}


4.设置UIImagePickerController的代理方法实现所要的效果 (1.取消时 2选择了图片时)

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{

    NSLog(@"cancel");

    [picker dismissViewControllerAnimated:YES completion:^{}];

}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{

//    取原始照片

    _imgV.image = info[@"UIImagePickerControllerOriginalImage"];

//    返回

    [picker dismissViewControllerAnimated:YES completion:^{}];

//    将info打印 看看是什么

//    NSLog(@"%@",info);//结果以下

2016-06-18 20:28:56.488 UIPickerController[5531:306107] {

    UIImagePickerControllerMediaType = "public.image";

    UIImagePickerControllerOriginalImage = "<UIImage: 0x7fcefe02e650> size {3000, 2002} orientation 0 scale 1.000000";

    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.JPG?id=ED7AC36B-A150-4C38-BB8C-B6D696F4F2ED&ext=JPG";

}

}

 

运行结果以下:
 

相关文章
相关标签/搜索