我有两个IBOutlet
变量连接到Interface Builder中的两个UIView
实例,在blankView
中称为fadedBGView
和ViewController
。
如何设置此代码,以便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;
}];
答案 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
具有正确的起始帧。