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
OCMock 模拟 UIImagePickerController