0

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];
}
4

2 回答 2

0

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

于 2013-09-26T09:53:43.033 回答
0

最终想出了如何做到这一点。我通过 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
  }
}

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

于 2013-09-26T10:26:03.207 回答