如何实现pushViewController:animated:的不同页面转换特效

1. 首先要明确的是,不使用pushViewController的默认动画,所以在调用这个函数时,要将animated设置为NO.
2. 使用普通的来CATransition实现转换效果,代码如下:

01 CATransition *animation = [CATransition animation];
02  
03 [animation setDuration:0.3];
04  
05 [animation setType: kCATransitionMoveIn];
06  
07 [animation setSubtype: kCATransitionFromTop];
08  
09 [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];
10     [self.navigationController pushViewController:m_poseAddIssueViewController animated:NO];
11     [self.navigationController.view.layer addAnimation:animation forKey:nil];


- (IBAction)onClick{   
   

secondView *mysec=[[secondView alloc] initWithNibName:@”secondView” bundle:nil];
    mysec.view.frame = CGRectMake(0.0f, -480.0f, 320.0f, 960.0f);
    [self.navigationController pushViewController:mysec animated:NO];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.3];
    [UIView setAnimationDelegate:self];
    //controller.view.center = CGPointMake(160.0f, 240.0f);
    mysec.view.frame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
    [UIView commitAnimations];
    [mysec release];

}

posted on 2012-11-15 18:04  无量少年  阅读(461)  评论(0编辑  收藏  举报

导航