0

と という名前の 2 つの画像ビューがobsPic1あります。obsPic2

ピッカー/カメラから画像を受け取ります。これは 1 つの画像に対しては正常に機能しますが、それ以上の画像は同じです。複数の画像に対してこれを行うにはどうすればよいですか? ボタンの送信者タグにアクセスしようとしましたが、宣言されていない識別子エラーが発生しました。また、ifステートメントを使用してみました。これを行う正しい方法は何ですか?

- (IBAction)addObsPhotoBtnPresssed:(id)sender {
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        LogCmd();
        UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        imagePicker.delegate = self;
        imagePicker.allowsEditing = YES;
        [self.editController presentModalViewController:imagePicker animated:YES];
        //iPad
    }
    else {
        if (self.pop) {
            [self.pop dismissPopoverAnimated:YES];
        }
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
        imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
        imagePickerController.delegate = self;
        imagePickerController.allowsEditing = YES;
        self.pop=[[UIPopoverController alloc] initWithContentViewController:imagePickerController];
        [self.pop presentPopoverFromRect:((UIButton *)sender).bounds inView:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    }
}


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

    [picker dismissModalViewControllerAnimated:YES];
    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
    self.obsPic1.backgroundColor = [UIColor whiteColor];
    self.obsPic1.image = image;
    NSData *imageData = UIImagePNGRepresentation(image);
    NSString *path = [ICUtils pathForDocument:@"obsPic.png"];
    [imageData writeToFile:path atomically:NO];


    UIImage *image2 = [info objectForKey:UIImagePickerControllerEditedImage];
    self.obsPic2.backgroundColor = [UIColor whiteColor];
    self.obsPic2.image = image2;
    NSData *imageData2 = UIImagePNGRepresentation(image);
    NSString *path2 = [ICUtils pathForDocument:@"obsPic2.png"];
    [imageData2 writeToFile:path2 atomically:NO];


}
4

1 に答える 1

1

と の両方が同じ画像imageimage2参照しています。

[info objectForKey:UIImagePickerControllerEditedImage]

おそらく、編集済みおよび元の画像を参照しようとしていますか?

    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];

    UIImage *image2 = [info objectForKey:UIImagePickerControllerOriginalImage];

またはその逆?OTOH で複数の画像の選択を許可しようとしている場合は、ELCImagePickerController を調べてください

于 2013-02-24T23:11:39.877 に答える