ios - Is it possible to snap UIViews using UISnapBehavior consecutively -


i working on cs193p , create effect cards fly in 0,0 1 after snapping place. tried chain animation views flying trying use uidynamicanimator , same thing happens. views snapping together. here code have snap views.

-(void)snapcardsfornewgame {     (playingcardview *cardview in self.cards){         nsuinteger cardviewindex = [self.cards indexofobject:cardview];         int cardcolumn = (int) cardviewindex / self.gamecardsgrid.rowcount;         int cardrow = (int) cardviewindex % self.gamecardsgrid.rowcount;         uisnapbehavior *snapcard = [[uisnapbehavior alloc]initwithitem:cardview snaptopoint:[self.gamecardsgrid centerofcellatrow:cardrow incolumn:cardcolumn]];         snapcard.damping = 1.0;         [self.animator addbehavior:snapcard];      }   }   -(void)newgame {     nsuinteger numberofcardsinplay = [self.game numberofcardsinplay];     (int i=0; i<numberofcardsinplay; i++) {         playingcardview *playingcard = [[playingcardview alloc]initwithframe:cgrectmake(0, 0, 50, 75)];         playingcard.faceup = yes;         [playingcard addgesturerecognizer:[[uitapgesturerecognizer alloc]initwithtarget:self action:@selector(flipcard:)]];         [self.cards addobject:playingcard];         //nsuinteger cardviewindex = [self.cards indexofobject:playingcard];         //int cardcolumn = (int) cardviewindex / self.gamecardsgrid.rowcount;         //int cardrow = (int) cardviewindex % self.gamecardsgrid.rowcount;         // playingcard.frame = [self.gamecardsgrid frameofcellatrow:cardrow incolumn:cardcolumn];         playingcard.center = cgpointmake(0, 0);         [self.gameview addsubview:playingcard];         [self snapcardsfornewgame];     } } 

does make sense use in situation? tried few different things cards fly in 1 one wasn't able to.

thanks in advance!

since you're adding uisnapbehaviors @ same time, animator runs them together. delay adding them animator , they'll animated on own.

-(void)snapcardsfornewgame {     (playingcardview *cardview in self.cards){         nsuinteger cardviewindex = [self.cards indexofobject:cardview];         int cardcolumn = (int) cardviewindex / self.gamecardsgrid.rowcount;         int cardrow = (int) cardviewindex % self.gamecardsgrid.rowcount;         uisnapbehavior *snapcard = [[uisnapbehavior alloc]initwithitem:cardview snaptopoint:[self.gamecardsgrid centerofcellatrow:cardrow incolumn:cardcolumn]];         snapcard.damping = 1.0;          nstimeinterval delaytime = 0.01 * cardviewindex;         dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(delaytime * nsec_per_sec)), dispatch_get_main_queue(), ^{             [self.animator addbehavior:snapcard];         });     } } 

Comments

Popular posts from this blog

javascript - jquery or ashx not working -

opencv - DataType<cv::detail::deriv_type>::depth what is it used for -

python 3.x - Mapping specific letters onto a list of words -