iPhone:动画向上移动视图控制器

时间:2012-08-25 06:53:35

标签: iphone

我正在开发一个iPhone应用程序,我需要在动画中慢慢向上移动第一个视图控制器并移动到第二个视图控制器。我正在考虑使用CoreAnimation缓慢向上移动第一个视图控制器并推送到下一个视图控制器。有人可以帮助提供实现此目的的类/ apis吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个,

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:yourfirstview cache:YES];
    [UIView setAnimationDidStopSelector:@selector(remove_view)];
    //change frame here
    yourfirstview.frame =CGRectMake(0,-480,320,480);
    [UIView commitAnimations];

   -(void)remove_view
    {
       [yourfirstview removeFromSuperview];
       [UIView beginAnimations:nil context:nil];
       [UIView setAnimationDuration:1.0];
       [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:yoursecondview cache:YES];
       //change frame here
       yoursecondview.frame =CGRectMake(0,0,320,480);
       [UIView commitAnimations];
    }

答案 1 :(得分:0)

您可以使用多个UIView s

在单个视图控制器上轻松实现此目的

根据Apple的文档:

  

在iOS 4及更高版本中,使用基于块的动画方法。

因此,为了产生预期的结果,请使用以下代码。

UIView *mySecondView = [[UIView alloc] initWithFrame:CGRectMake(0, 480, 320, 480)];
[mySecondView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:mySecondView];

[UIView animateWithDuration:2.0 delay:3.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    [mySecondView setTransform:CGAffineTransformMakeTranslation(0, -480)];
}completion:^(BOOL done){

}];