到目前为止,我使用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];
答案 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; }