2011-04-14 64 views
1

我是Iphone开发新手,并且需要一个名为PhotoSelectorViewController的ViewController,它会要求从电话库中选择图片。我知道UIImagePickerController在那里,但我不知道如何正确使用它。iPhone UIView和UIImagePickerController

我尝试以下操作:

第一种方法:

  1. 我创建了一个名为PhotoSelectorViewController用XIB1文件视图控制器。
  2. 我从xib文件中移除View并将UIImagePickerController添加到列表中。
  3. 我不知道下一步要做什么,以便在这个ViewController中创建这个类的实例,调用一些init函数。

第二种方法:

  1. 我创造了新的项目,并添加了一个名为PhotoSelectorViewController视图控制器,那里是一个窗口,只有一个UIView。
  2. 关于UIView viewDidLoad函数我正在创建UIImagePickerController的实例并将其添加到视图中。
  3. 我不知道这个选择器将如何启动时,将创建此视图控制器的实例?

如果可以,请帮助。

回答

2

最简单的方法是从调用视图控制器模态地呈现它。

所以,举例来说,如果你有MyController一个按钮叫showPhotos

-(IBAction)showPhotos:(id)sender { 
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
    imagePicker.delegate = self; 
    imagePicker.allowsEditing = YES; 
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    [self presentModalViewController:imagePicker animated:YES]; 
} 

然后,你需要实现

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

在此相同的控制器,因为它(在我例如)被设置为代表。

allowsEditing允许用户在使用前平移,缩放和裁剪图像。如果您不想允许,请设置为“否”。

在委托方法中,字典包含结果UIImage。您可以通过获得

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];,如果你允许编辑。

+0

太好了!你能告诉我如何从这个成功函数中获取字节的图像吗? – Neutralizer 2011-04-14 19:01:47

+0

看看:http://developer.apple.com/library/mac/#qa/qa1509/_index.html只需从UIImage获取CGImageRef并按照指南操作即可。 – MarkPowell 2011-04-14 19:12:49

1

你的第二个方法是接近,但不它添加到视图,而不是你需要或者目前UIImagePickerController作为一个模式视图控制器,或将其推送到导航堆栈。

想象一下,PhotoSelectorViewControllerUIImagePickerController的启动器。

的文档提供一个很好的序列(请参见第1-5靠近顶部):http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html