1

我有一个非常简单的应用程序,用户选择一个UIImageView并按下按钮用相机拍照。然后将图像返回并显示在UIImageView.

但是,由于UIImageViews共享同一个代表,当其中一个中已经有图像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 回答