0

我目前正在制作一个照片装饰应用程序。*holderView 是用户选择的贴纸。每当我尝试从照片库加载照片或拍摄照片然后加载回此页面时,额外的 *holderView 以编程方式添加,这是我之前在拍照之前选择的贴纸,之后会出现重复的贴纸,这不是我想要的。

我应该如何编写代码以防止这种情况发生?非常感谢。

- (void)viewWillAppear:(BOOL)animated {

UIView *holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 50, _imagePicker.selectedImage.size.width, _imagePicker.selectedImage.size.height)];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:[holderView frame]];
[imageView setImage:_imagePicker.selectedImage];
[holderView addSubview:imageView];
...
}
4

1 回答 1

2

您的问题似乎是您使用 viewWillAppear 方法而不是 viewDidLoad。这将导致多个“imageViews”,因为您每次隐藏时添加一个新的,然后显示它所呈现的 viewController。您想要做的是将 imageView 的创建(如果真的假设只有 1 个)移动到viewDidLoad 方法并使该 imageView 可供整个类访问,然后在 viewWillApear 中只需将 imageView 中的图像更改为新选择的图像。

于 2012-01-06T15:15:41.580 回答