1

UIImageViewユーザーが選択してボタンを押してカメラで写真を撮る非常にシンプルなアプリがあります。次に、イメージが返され、 に表示されますUIImageView

ただし、UIImageViewsは同じデリゲートを共有しているため、 の 1 つに既に画像がありUIImageViews、別の に配置する写真を撮りに行くと、前のUIImageViewものは空のコンテンツ (つまり画像なし) に置き換えられます。これは、彼らが同じデリゲートを共有しているためだと思います。委任バージョンを参照する代わりに、本質的にイメージをコピーできる方法はありますか?

サンプルコードは次のとおりです。

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
[picker.parentViewController dismissModalViewControllerAnimated:YES];

if (topView == YES)
{
    NSLog(@"topView = %i", topView);
    imageView.image = image;
}
else {
    NSLog(@"topView = %i", topView);
    imageView2.image = image;
}

}

ありがとう!

編集:ボタンが押されたときにIBActionによって呼び出されるコードは次のとおりです

- (IBAction) pushPick {
    topView = YES;
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}
- (IBAction) pushPick2 {
    topView = NO;
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}
4

2 に答える 2

2

このようなもの:

UIImage * newImage = [UIImage imageWithCGImage:[image CGImage]];
于 2009-11-22T22:50:21.917 に答える
-1

使用する

[image copy];

ただし、dealloc でオブジェクトを解放する必要があることに注意してください。

于 2009-11-22T22:47:18.530 に答える