2

以前にこの問題が発生したことはありますか? アプリケーションでカメラを使用してUIImagePickerController写真を撮っていますが、撮影した写真が写真ライブラリに保存されていないことに気付きました。iOS5 と iPhone4、iOS6 と iPhone5 の両方で試してみましたが、結果は同じでした。設定方法は次のとおりです。

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
    imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
}

imagePickerController.delegate = self;
[self.navigationController presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];

UIImagePickerController は、撮影した写真をユーザーの写真ライブラリに暗黙的に保存する必要があるように見えますか? どんな助けでも感謝します。

4

1 に答える 1

12

次のコードを試してください。

-(IBAction)useCamera
{
 if ([UIImagePickerController isSourceTypeAvailable:
      UIImagePickerControllerSourceTypeCamera])
 {
  UIImagePickerController *imagePicker =
  [[UIImagePickerController alloc] init];
  imagePicker.delegate = self;
  imagePicker.sourceType =
  UIImagePickerControllerSourceTypeCamera;
  imagePicker.mediaTypes = [NSArray arrayWithObjects:
                            (NSString *) kUTTypeImage,
                            nil];
  imagePicker.allowsEditing = NO;
  [self presentViewController:imagePicker animated:YES completion:nil];
  newMedia = YES;
 }
}

#pragma mark- camera picker delegate methods

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
 NSString *mediaType = [info
                        objectForKey:UIImagePickerControllerMediaType];

 [self dismissViewControllerAnimated:YES completion:nil];

 if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
  UIImage *image = [info
                    objectForKey:UIImagePickerControllerOriginalImage];

  [imageView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth)];
  imageView.image = image;
  if (newMedia)
   UIImageWriteToSavedPhotosAlbum(image,
                                  self,
                                  @selector(image:finishedSavingWithError:contextInfo:),
                                  nil);
 }
 else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
 {
  // Code here to support video if enabled
 }
}

-(void)image:(UIImage *)image
finishedSavingWithError:(NSError *)error
 contextInfo:(void *)contextInfo
{
 if (error) {
  UIAlertView *alert = [[UIAlertView alloc]
                        initWithTitle: @"Save failed"
                        message: @"Failed to save image"\
                        delegate: nil
                        cancelButtonTitle:@"OK"
                        otherButtonTitles:nil];
  [alert show];
 }
}

カメラから写真を選択して ImageView に保存し、save メソッドを呼び出してカメラ ロールに保存します。これが役に立ちますように

于 2013-01-03T07:45:28.580 に答える