1

我有两个IBOutlet变量连接到UIViewInterface Builder 中的两个实例blankViewfadedBGView在我的ViewController.

如何设置此代码,以便实例使用过渡blankView淡入淡出,并且两者可以同时从当前位置(它们具有相同的位置)转换(移动)到 0,0?fadedBGViewUIViewAnimationOptionTransitionCrossDissolveUIViews

正在发生的是淡入淡出,然后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;
}];
4

2 回答 2

1

iOS 4 和更新版本提供了基于块的动画,您的代码已经在使用这些动画:

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

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

于 2012-11-07T23:15:35.407 回答
1

代替

UIViewAnimationOptionTransitionCrossDissolve

利用

UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowAnimatedContent

UIViewAnimationOptionAllowAnimatedContent选项允许在过渡期间附加动画。确保您的fadedBGView起始帧正确。

于 2012-11-07T23:32:44.010 回答