how to create explode effect the UIView?
-
10-10-2019 - |
Pergunta
i need explode effect when the view change i.e., explode animation when i move to the next view. i found this type of animation in facebook app when click the icon in the dash board
please help me
Solução
hai i finished the explode view this is my code thanks for your help
//Click event for view explode
-(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]];
}
//animate 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];
}
//animated stop
-(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;
}
}
its work as per my require Thanks
Outras dicas
On action...take a image View add it as subview to your view,load with series of images of explosion(or any thing which you want) start it animating, when the animation finishes from the delegate remove it from superview.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow