到目前为止,我使用 begin/commit 方法在 View 之间切换。通过这种方式,可以很容易地“组合”两个或多个要同时插入到顶部的 View 。在我的例子中,它是一个带有 border2.view 的 content2.view。动画看起来像是一个 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;
现在我想将动画转换成 block 。它也有效,但不是我不知道如何“合并”两个 View 。有办法吗?
[UIView transitionFromView:content1.view
toView:content2.view
duration:2.0
options:UIViewAnimationOptionTransitionFlipFromRight
completion:NULL];
最佳答案
您必须使用以下方法:
transitionWithView:duration:options:animations:completion:
transitionFromView:toView 是一种方便的方法,适用于需要从一个 View 转换到另一个 View 的最常见情况。
在这种情况下,您的代码应该是
[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; }
关于iphone - 具有多个 View 的 block 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086581/