2010-12-08 23 views
0

J'ai besoin d'un effet d'éclatement lorsque la vue change, c'est-à-dire que j'explose une animation lorsque je passe à la vue suivante. je l'ai trouvé ce type d'animation dans l'application facebook quand cliquez sur l'icône dans le tableau de bordcomment créer l'effet d'éclater l'UIView?

s'il vous plaît aidez-moi

Répondre

1

hai i terminé la voir exploser c'est mon code merci pour votre aide

// Cliquez sur l'événement pour une vue exploser

-(IBAction) buttonPressed: (id) sender{ 
    UIButton *buttonPressed = (UIButton *)sender; 
    NSLog(@"buttonTag %d",buttonPressed.tag); 
    @try { 
    switch (buttonPressed.tag) { 
      NSLog(@"Pugal"); 
     case 0: 
      viewController=news; 
      break; 
     case 1: 
      viewController=videoWeb; 
      break; 
     case 2: 
      viewController=photo; 
      break; 
     case 3: 
      viewController=events; 
      break; 
     case 4: 
      viewController=mobileWeb; 
      break; 

     default: 
      break; 

    } 

} 

[self performSelector:@selector(animateTransition:) withObject:[NSNumber numberWithFloat: TIME_FOR_EXPANDING]]; 
} 

// Animer Transition

-(void)animateTransition:(NSNumber *)duration { 

self.view.userInteractionEnabled=NO; 
[[self view] addSubview:viewController.view]; 
if ((viewController.view.hidden==false) && ([duration floatValue]==TIME_FOR_EXPANDING)) { 
    viewController.view.frame=[[UIScreen mainScreen] bounds]; 
     viewController.view.transform=CGAffineTransformMakeScale(SCALED_DOWN_AMOUNT, SCALED_DOWN_AMOUNT); 
} 
viewController.view.hidden=false; 
if ([duration floatValue]==TIME_FOR_SHRINKING) { 
    [UIView beginAnimations:@"animationShrink" context:NULL]; 
    [UIView setAnimationDuration:[duration floatValue]]; 
    viewController.view.transform=CGAffineTransformMakeScale(SCALED_DOWN_AMOUNT, SCALED_DOWN_AMOUNT); 
} 
else { 
     [UIView beginAnimations:@"animationExpand" context:NULL]; 

     [UIView setAnimationDuration:[duration floatValue]]; 
     viewController.view.transform=CGAffineTransformMakeScale(1, 1); 
} 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)]; 
[UIView commitAnimations]; 
} 

// animé arrêter

-(void)animationDidStop:(NSString *)animationID finished:(BOOL)finished context:(void *)context{ 

self.view.userInteractionEnabled=YES; 

if ([animationID isEqualToString:@"animationExpand"]) { 

    UINavigationController *navig = [[[UINavigationController alloc] initWithRootViewController:viewController] autorelease]; 

    [self presentModalViewController:navig animated:NO]; 
} 
else { 
    viewController.view.hidden=true; 
} 
} 

son travail selon mes besoins Merci

0

sur l'action ... prendre une image Voir l'ajouter comme sous-vue à votre point de vue, la charge avec des séries d'images de l'explosion (ou de tout ce que vous voulez) lancez l'animation, lorsque l'animation se termine du délégué, supprimez-la de superview.