XCode / Objective-C:UIView实例的同时动画?

时间:2012-11-07 23:09:20

标签: objective-c xcode animation uiview

我有两个IBOutlet变量连接到Interface Builder中的两个UIView实例,在blankView中称为fadedBGViewViewController

如何设置此代码,以便blankView实例将使用fadedBGView转换淡入UIViewAnimationOptionTransitionCrossDissolve,并且两个UIViews可以同时转换(移动) )从他们当前的位置(他们有相同的位置)到0,0?

发生了淡入淡出,然后fadedBGView视图突然移动到0,0。

换句话说,我希望第一个UIView淡入第二个,同时向上移动屏幕。

希望这很清楚,可以回答。 最好... SL

[UIView transitionFromView:blankView
                    toView:fadedBGView
                    duration:1.0
                    options:UIViewAnimationOptionTransitionCrossDissolve
                    completion:^(BOOL finished) {
                    [blankView removeFromSuperview];
                    }];

[UIView commitAnimations];

CGRect frame = fadedBGView.frame;
frame.origin.x = 0;
frame.origin.y = 0;
[UIView animateWithDuration:1.0 animations:^{
    NSLog(@"UIView Transition/Move Called");
    fadedBGView.frame = frame;
}];

2 个答案:

答案 0 :(得分:1)

iOS 4及更新版本提供了基于块的动画,您的代码已在使用它们:

+[UIView animateWithDuration:animations:];
+[UIView animateWithDuration:animations:completion:];

在动画块中,您可以设置多个目标值。有关动画属性的参考,请参阅Apple's UIView documentation。因此,在一个块中,您可以修改视图的帧和alpha(透明度)值。我不确定交叉消解动画是如何工作的,但如果它只是一个从0到1的视图,而另一个视图从1到0,则很容易实现。

答案 1 :(得分:1)

而不是

UIViewAnimationOptionTransitionCrossDissolve

使用

UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowAnimatedContent

UIViewAnimationOptionAllowAnimatedContent选项允许在转换期间添加其他动画。确保您的fadedBGView具有正确的起始帧。