UiImagePickerController - 多张照片

Posted

技术标签:

【中文标题】UiImagePickerController - 多张照片【英文标题】:UiImagePickerController - more than one photo 【发布时间】:2013-09-25 14:47:41 【问题描述】:

Iphone 应用程序,ios 5 及更高版本。

在 SO 上有与此类似的问题,但我没有遇到过这种确切的情况,所以我会问。我正在编辑一个现有的应用程序,它允许您拍摄一张照片,它会调整大小并将其发送到网络服务。

我需要添加拍摄 3 张照片、调整每张照片大小并发送到相同服务的功能。我认为这只是重复应用程序中已有内容的问题,但它使用 UIImagePickerController,显然每次使用只允许一张照片。

所以它的工作方式是有一个“拍照”按钮,它调用下面的方法。一旦拍摄了这张照片,就会出现另一个按钮,上面写着“拍摄另一张照片”(我添加了这个按钮),我让它调用相同的方法,但它只是复制上一张照片,这确实是意料之中的。我应该如何最好地更改它以容纳 3 张照片?

这是我正在调用的 takephoto 方法。

- (IBAction)takePhoto:(id)sender

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePickerController.delegate = self;
    [self presentViewController:imagePickerController animated:YES completion:NULL];

【问题讨论】:

【参考方案1】:

检查这个https://developer.apple.com/library/ios/samplecode/photopicker/Introduction/Intro.html ,查看此演示项目的拍照部分。

【讨论】:

【参考方案2】:

最终想出了如何做到这一点。我通过 IB 为调用该方法的按钮添加了一个标签。

然后在 takephoto 方法中,我根据点击按钮的标签为 imagePickerController 分配了一个标签。像这样:

- (IBAction)takePhoto:(id)sender

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

   if([sender tag] == 2)
   
       imagePickerController.view.tag = 2;
   
   //And so on...

   imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
   imagePickerController.delegate = self;
   [self presentViewController:imagePickerController animated:YES completion:NULL];   

然后在 ImagePickerController 的 didFinishedPickingMediaWithInfo 方法中:

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


  if(picker.view.tag == 2)
  
     //Do stuff here
  

因此,我可能必须为三张可能的照片中的每一张创建三个不同的按钮,我确信有比这更好的方法,但它应该可以工作。

【讨论】:

以上是关于UiImagePickerController - 多张照片的主要内容,如果未能解决你的问题,请参考以下文章

UIImagePickerController、自定义 UIButton 和 AutoLayout

UIImagePickerController 实况照片

OCMock 模拟 UIImagePickerController

UIImagePickerController 图像没有改变

无法弹出 UIImagePickerController

为啥 UIImagePickerController 不能推入导航栈?