使用UIImagePickerController从iPhone照片库或照相机获取图像

@interface PhotoAppViewController : UIViewController

-(IBAction) getPhoto:(id) sender {

UIImagePickerController * picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

if((UIButton *) sender == choosePhotoBtn) {

picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

}

else {

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

}

[self presentModalViewController:picker animated:YES];

}

首先创建一个新的 UIImagePickerController 对象。它是一个视图控制器,可以按任意视图控制器方式正常显示出来(显示于导航视图,加载于表格视图,呈现为模型视图控制器等)。然后,设置代理为我们的视图控制器。它表示当用户选取照片时,拾取器将调用类中的某个方法。接着,确定哪个按钮被按下。由于两个按钮都连接到此方法上,我们需要确定到底哪个被按下。到底是显示照相机图片还是显示照片库图片是由拾取器的一个属性决定的,看看代码就会很清楚。最后,调用presentModalViewController。它将使拾取器以动画的形式从屏幕底向上移动,切换到视图。根据按下的按钮的不同,你将看到下面图像:

使用UIImagePickerController从iPhone照片库或照相机获取图像_第1张图片

一旦选择了照片,ImagePicker 将回调 didFinishPickingMediaWithInfo。在视图控制器中加入下列代码:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

[picker dismissModalViewControllerAnimated:YES];

imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

}

第一行代码是隐藏拾取器。随后将图像视图的 image 属性设置为返回的图像。拾取器返回一个 NSDictionary 对象。这是由于 UIImagePickerControllerMediaType 将指示返回的是视频还是图像。

你可能感兴趣的:(使用UIImagePickerController从iPhone照片库或照相机获取图像)