-1

2つのUIImageviewを使用し、最初のボタンの画像ピッカーをタップすると2つのボタンで画像を選択できます

フォトライブラリから、2番目のボタンまで同じです。これは私がしたことです

viewcontroler.h

UIImagePickerController *pic1;
UIImagePickerController *pic2;
UIImage *image1;
UIImage *image2;

IBOutlet UIImageView *imageview1;
IBOutlet UIImageView *imageview2;

-(IBAction)Load1:(id)sender;
-(IBAction)Load2:(id)sender;

vewcontroller.m

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

   image1 = [info objectForKey:UIImagePickerControllerOriginalImage];
   image2 = [info objectForKey:UIImagePickerControllerOriginalImage];
   [imageview1 setImage:image1];
   [imageview2 setImage:image2];


   [self dismissViewControllerAnimated:YES completion:NULL];

}


-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
   [self dismissViewControllerAnimated:YES completion:NULL];
}


- (IBAction)Load1:(id)sender
{
   pic1 = [[UIImagePickerController alloc]init];
   pic1.delegate = self;
   [pic1 setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
   [self presentViewController:pic1 animated:YES completion:NULL];
}

- (IBAction)Load2:(id)sender
{
   pic2 = [[UIImagePickerController alloc]init];
   pic2.delegate = self;
   [pic2 setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
   [self presentViewController:pic2 animated:YES completion:NULL];


}

私が走るとき。最初のボタンが機能します。フォト ライブラリから画像を選択して表示できます。2 番目のボタンはそのまま機能しますが、選択した画像は両方の UIImageview に表示されます

ここで私が間違っていたこと、ありがとう

4

1 に答える 1

1

これらの行により、両方のイメージビューに選択した同じイメージが表示されます。

image1 = [info objectForKey:UIImagePickerControllerOriginalImage];
image2 = [info objectForKey:UIImagePickerControllerOriginalImage];

UIImagePickerControllerOriginalImage両方のイメージビューには、 : inと同じソース イメージがあります。

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

あなたがする必要があるのは、どのボタンが押されたか、その画像がどの画像ビューに含まれるべきかを区別することです。もちろん、多くのアプローチに従うことができます: bool を使用して呼び出し元を区別することができます:

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
   if (button1Clicked)   //Boolean to determine which button was pressed, set it in IBAction of the button
   {
      image1 = [info objectForKey:UIImagePickerControllerOriginalImage];
      [imageview1 setImage:image1];
   }
   else
   {
      image2 = [info objectForKey:UIImagePickerControllerOriginalImage];
      [imageview2 setImage:image2];
   }

      [self dismissViewControllerAnimated:YES completion:NULL];

}

またはその他の関連するアプローチ。

于 2013-08-11T11:57:51.773 に答える