Дублированный пользовательский интерфейс добавлен программно - PullRequest
0 голосов
/ 06 января 2012

В настоящее время я делаю приложение для оформления фотографий.* 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];
...
}

1 Ответ

2 голосов
/ 06 января 2012

Похоже, ваша проблема в том, что вы используете метод viewWillAppear вместо viewDidLoad. Это приведет к появлению нескольких «imageViews», потому что вы добавляете новый каждый раз, когда вы скрываете, а затем показываете viewController, в котором он представлен. То, что вы хотите сделать, это переместить создание imageView (если на самом деле предполагается, что оно только 1) в метод viewDidLoad и сделайте этот imageView доступным для всего класса, затем в viewWillApear просто измените изображение внутри imageView на новый выбранный.

...