具有多个视图的块转换

时间:2011-08-17 00:03:28

标签: iphone ios animation objective-c-blocks

到目前为止,我使用begin / commit方法在视图之间切换。通过这种方式,可以很容易地“组合”两个或多个视图同时插入顶部。就我而言,它是一个带有border2.view的content2.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];

1 个答案:

答案 0 :(得分: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; }