在iOS中经常会需要访问相册图片,在本文总结访问相册的步骤
1.创建UIImagePickerController对象
2.设置该对象的参数以及委托对象
3.实现协议回调方法
特别注意:因为UIImagePickerController继承UINavigationController类,所以需要实现
UIImagePickerControllerDelegate、
//访问手机相册
//创建UIImagePickerController对象
UIImagePickerController *pickController = [[UIImagePickerController alloc] init];
/**
设置pickController读取相册资源类型(默认资源)
共有三种选择:
UIImagePickerControllerSourceTypePhotoLibrary,
UIImagePickerControllerSourceTypeCamera,
UIImagePickerControllerSourceTypeSavedPhotosAlbum
*/
[pickController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
//设置代理
pickController.delegate = self;
//视图跳转
[self presentViewController:pickController animated:YES completion:^{
NSLog(@"加载图片成功");
}];
//协议实现
#pragma mark - UIImagePickerControllerDelegate
//选择
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//UIImagePickerControllerOriginalImage 是框架定义的提取选中的图片资源的 key
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
_slectImageView.image = image;
[picker dismissViewControllerAnimated:YES completion:nil];
}
//取消选择
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
//取消相册的显示
[picker dismissViewControllerAnimated:YES completion:nil];
}
UINavigationControllerDelegate协议
//获取选择的图片
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
//退出访问相册
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
示例代码: