Многократная кнопка, чтобы указать, какой ImageView должен быть вызван - PullRequest
0 голосов
/ 22 января 2012

Я пытаюсь создать несколько UIImageView, каждая с двумя кнопками - кнопка «Сделать фото» и кнопка «Выбрать фотографию». Пока что я настроил две UIImageView и четыре кнопки. Когда вы нажимаете любую из кнопок «Сделать фото», действие переходит к тому же процессу:

-(void)takePhoto:(id) sender {
UIImagePickerController *controller = [[UIImagePickerController alloc] init];
    controller.sourceType = UIImagePickerControllerSourceTypeCamera;
    [controller setDelegate:self];
    [self presentModalViewController:controller animated:YES];
}

То же самое касается кнопок ChoosePhoto с библиотекой SourceTypePhotoLibre вместо SourceTypeCamera. Как только этот процесс завершен, он переходит в эту функцию:

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

image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[self dismissModalViewControllerAnimated:YES];
theImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 690, 440)];
theImageView.userInteractionEnabled = TRUE;
[layout1 addSubview:theImageView];
[theImageView release];
[theImageView setImage:image];
takePhoto.hidden = YES;
choosePhoto.hidden = YES;
theImageView.clipsToBounds = YES;

imagetwo = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[self dismissModalViewControllerAnimated:YES];
ImageView2 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 690, 440)];
ImageView2.userInteractionEnabled = TRUE;
[layout2 addSubview:ImageView2];
[ImageView2 release];
[ImageView2 setImage:imagetwo];
takePhoto2.hidden = YES;
choosePhoto2.hidden = YES;
ImageView2.clipsToBounds = YES;
}

Теперь я думаю, что мне нужно утверждение if, чтобы XCode распознал, какие кнопки были нажаты, чтобы не отображать оба изображения, когда вы нажимаете кнопки просмотра первого изображения или кнопки просмотра других изображений. Я просто не уверен, из чего состоит этот оператор if, так как мне нужно сказать, что если takePhoto или choosePhoto isTouchedInside, то он запускает первый ImageView, а не другой. Есть идеи?

1 Ответ

1 голос
/ 22 января 2012

UIButtons являются подклассами UIView и поэтому имеют свойство тега. Установите уникальные теги для каждой кнопки, и в своем методе takePhoto: сохраните этот тег в iVar.

 int myTag = ((UIButton *)sender).tag;

Затем проверьте этот ivar в вашем didFinish: метод.

...