2011-08-17 57 views
1

直到现在,我使用begin/commit方法在视图之间切换。通过这种方式,很容易将两个或多个视图“结合”在同一时间插入顶部。在我的情况下,它是一个content2.view,其上有border2.view。该动画看起来像是一个视图,其内容在一个框架中。具有多个视图的块转换

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:speed]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES]; 

    [window addSubview:content2.view]; 
    [window addSubview:border2.view]; 

    [UIView commitAnimations]; 

    content1.view = nil; 

现在我想将动画转换为块。它也有效,但不是我无法弄清楚我如何“合并”两种观点。有没有办法?

[UIView transitionFromView:content1.view 
        toView:content2.view 
        duration:2.0 
        options:UIViewAnimationOptionTransitionFlipFromRight 
       completion:NULL]; 

回答

0

您必须使用方法:

transitionWithView:duration:options:animations:completion: 

transitionFromView:toView是需要转型,从一个视图到另一个视图的最一般的情况下,方便的方法。

在这种情况下,你的代码应该是

[UIView transitionWithView:window 
        duration:2.0 
        options:UIViewAnimationOptionTransitionFlipFromRight 
       animations:^{ [window addSubview:content2.view]; 
           [window addSubview:border2.view]; } 
       completion:^(BOOL completed){ [content1.view removeFromSuperview]; 
               content1.view = nil; } 
+0

非常感谢您! – Bobby