在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;
示例代码: