sandeep tomar
sandeep tomar

Reputation: 305

How to add image on uiimageview according to its tag value property.?

i am opeen a camera on uiimageview tapped event and want to add camera image according to the images tapped. i have four image in my view. Every imageview will open camera separately. Look at my code

- (void)viewDidLoad {
[super viewDidLoad];


if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

    UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Error"
                                                          message:@"Device has no camera"
                                                         delegate:nil
                                                cancelButtonTitle:@"OK"
                                                otherButtonTitles: nil];

    [myAlertView show];

}






UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)];
singleTap.numberOfTapsRequired = 1;
[_first setUserInteractionEnabled:YES];
[_first addGestureRecognizer:singleTap];
_first.tag = 1;

UITapGestureRecognizer *singleTap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetectedforsecondimage)];
singleTap1.numberOfTapsRequired = 1;
[_second setUserInteractionEnabled:YES];
[_second addGestureRecognizer:singleTap1];
_second.tag = 2;

   }

 - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];

  }


    -(void)tapDetected{
NSLog(@"single Tap on imageview");

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;

[self presentViewController:picker animated:YES completion:NULL];

}

 -(void)tapDetectedforsecondimage
   {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;

[self presentViewController:picker animated:YES completion:NULL];


  }


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



UIImage *chosenImage = info[UIImagePickerControllerEditedImage];

self.second.image = chosenImage;
[picker dismissViewControllerAnimated:YES completion:NULL];

     }

Upvotes: 0

Views: 180

Answers (1)

Anbu.Karthik
Anbu.Karthik

Reputation: 82759

do like

Step-1

Assign the same method name for your Gestures

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
singleTap.numberOfTapsRequired = 1;
  _first.tag = 1;
  [_first setUserInteractionEnabled:YES];
[_first addGestureRecognizer:singleTap];


UITapGestureRecognizer *singleTap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
singleTap1.numberOfTapsRequired = 1;
[_second setUserInteractionEnabled:YES];
_second.tag = 2;
[_second addGestureRecognizer:singleTap1];

Step-2

get the tags and pass the tag to imagepickercontroller

 -(void) tapDetected:(UITapGestureRecognizer *)gestureRecognizer{

    //Get the View
    UIImageView *tabbedIamage = (UIImageView*)gestureRecognizer.view;
    NSLog(@"%d",tabbedIamage.tag);
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
 picker.delegate = self;
 picker.allowsEditing = YES;
 // set the tag 
 picker.view.tag = tabbedIamage.tag;
 picker.sourceType = UIImagePickerControllerSourceTypeCamera;

 [self presentViewController:picker animated:YES completion:NULL];
}

Step-3

set the final image based on tag

 - (void)imagePickerController:(UIImagePickerController *)picker  didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];

if (picker.view.tag == 1)
{
 self.first.image = chosenImage;
 }
else
 {
 self.second.image = chosenImage;
 }
[picker dismissViewControllerAnimated:YES completion:NULL];

 }

Upvotes: 2

Related Questions