0

当视图改变时我需要爆炸效果,即当我移动到下一个视图时爆炸动画。单击仪表板中的图标时,我在 facebook 应用程序中发现了这种类型的动画

请帮我

4

2 回答 2

1

嗨,我完成了爆炸视图这是我的代码谢谢你的帮助

//视图爆炸的点击事件

  -(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]];
}

//动画过渡

-(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];
 }

//动画停止

   -(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;
}
}

它按照我的要求工作谢谢

于 2010-12-14T10:10:46.833 回答
0

在行动中......采取图像视图将其作为子视图添加到您的视图中,加载一系列爆炸图像(或您想要的任何东西)开始动画,当动画从代表完成时将其从超级视图中删除。

于 2010-12-14T09:00:33.920 回答