ios - Not able to move two images using uipangesturerecogniser -


i want move 2 images same uipangesturerecognizer , able move first image, try move second image first 1 goes original position. want first image retain it's after changed position.

-(void) viewwillappear:(bool)animated {     uipangesturerecognizer *pan = [[uipangesturerecognizer alloc] initwithtarget:self      action:@selector(handlepansuper:)];     [self.view addgesturerecognizer:pan]; }  - (void)handlepansuper:(uipangesturerecognizer *)sender     {      static uiimageview *viewtomove;      static cgpoint  originalcenter;      if (sender.state == uigesturerecognizerstatebegan)     {     cgpoint location = [sender locationinview:self.view];      if (cgrectcontainspoint(self.imageview.frame, location))     {         viewtomove = imageview;         originalcenter = viewtomove.center;     }     else if (cgrectcontainspoint(self.image2.frame, location))     {         viewtomove = image2;         originalcenter = viewtomove.center;     }     else     {         viewtomove = nil;     }      if (viewtomove)     {          viewtomove.alpha = 0.8;         [viewtomove.superview bringsubviewtofront:viewtomove];         nslog(@"hi being touched.");      }  }  if (sender.state == uigesturerecognizerstatechanged && viewtomove != nil)     {     cgpoint translation = [sender translationinview:self.view];     viewtomove.center = cgpointmake(originalcenter.x + translation.x, originalcenter.y +                                        translation.y);   } else if ((sender.state == uigesturerecognizerstateended ||           sender.state == uigesturerecognizerstatefailed ||           sender.state == uigesturerecognizerstatecancelled) && viewtomove != nil) {     // whatever post dragging want, e.g.     // snap piece place         // cgpoint center = viewtomove.center;         //viewtomove.center = center;          viewtomove.alpha  = 1.0;          viewtomove = nil;   } } 

you setting gesture recognizer in superview. why? set inside views trying move, it's easier , less strange behaviors edited code, see below (not tested)

-(void) viewwillappear:(bool)animated {     uipangesturerecognizer *pan = [[uipangesturerecognizer alloc] initwithtarget:self      action:@selector(handlepansuper:)];     self.imageview.userinteractionenabled = self.image2.userinteractionenabled = yes;     [self.imageview addgesturerecognizer:pan];     [self.image2 addgesturerecognizer:pan]; }  - (void)handlepansuper:(uipangesturerecognizer *)sender {     uiimageview *viewtomove = (uiimageview*)sender.view;     cgpoint  originalcenter = viewtomove.center;      if (sender.state == uigesturerecognizerstatebegan)     {         cgpoint location = [sender locationinview:self.view];          viewtomove.alpha = 0.8;         [viewtomove.superview bringsubviewtofront:viewtomove];         nslog(@"hi being touched.");      }     else if (sender.state == uigesturerecognizerstatechanged)     {         cgpoint translation = [sender translationinview:self.view];         viewtomove.center = cgpointmake(originalcenter.x + translation.x, originalcenter.y +                                        translation.y);      }     else if ((sender.state == uigesturerecognizerstateended ||           sender.state == uigesturerecognizerstatefailed ||           sender.state == uigesturerecognizerstatecancelled))     {     // whatever post dragging want, e.g.     // snap piece place         // cgpoint center = viewtomove.center;         //viewtomove.center = center;          viewtomove.alpha  = 1.0;         viewtomove = nil;     } } 

please try this, , let me know if worked.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -