UIImagePickerController

iOS 获取图片有三种方法:
1. 直接调用摄像头拍照
2. 从相册中选择
3. 从图库中选择

UIImagePickerController 是系统提供的用来获取图片和视频的接口;
UIImagePickerController 类来获取图片视频,大体分为以下几个步骤:
1. 初始化UIImagePickerController 类;
2. 设置UIImagePickerController 实例的数据来源类型(下面解释);
3. 设置设置代理;
4. 如果需要做图片修改的话设置allowsEditing =yes。

数据来源类型一共有三种:

enum {
UIImagePickerControllerSourceTypePhotoLibrary ,//来自图库
UIImagePickerControllerSourceTypeCamera ,//来自相机
UIImagePickerControllerSourceTypeSavedPhotosAlbum //来自相册
};


- 获取图片首先签订两个协议

@interface MainViewController ()```

  • 在点击方法内模态推出UIImagePickerController
    • 从相册选取(需给用户选择哪种方式获取图片)
 //sourceType 是用来确认用户界面样式,选择相册
 UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
 //设置代理
 imagePicker.delegate = self;
 //允许编辑弹框
 imagePicker.allowsEditing = YES;
//是用手机相册来获取图片的
imagePicker.sourceType = sourceType;      
//模态推出pickViewController
[self presentViewController:imagePicker animated:YES completion:nil];
  • 从相机获取
//sourceType 是用来确认用户界面的样式, 选择相机
 UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
//设置代理
imagePicker.delegate = self;
//允许编辑弹框
imagePicker.allowsEditing = YES;
//是用相机照相来获取图片
imagePicker.sourceType = sourceType;
//模态推出pickViewController
[self presentViewController:imagePicker animated:YES completion:nil];
  • 实现代理方法
 //选择完图片后会回调 didFinishPickingMediaWithInfo 这个方法
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
 NSLog(@"info = %@",info);
//隐藏控制器
    [picker dismissViewControllerAnimated:YES completion:nil];
//给imageView 赋值图片
    imageView.image = [infoobjectForKey:UIImagePickerControllerEditedImage];
}
//导航条上面的 Cancel 的点击方法
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
  //隐藏控制器
    [picker dismissViewControllerAnimated:YES completion:nil];
}

你可能感兴趣的:(UIImagePickerController)