2014-03-04 35 views
0

我在彼此之上有两个相同的视图。 一个是真实的,一个应该扮演虚拟角色。在相互重叠的相同视图之间交叉淡入淡出

我想在它们之间淡入淡出(默默地)。 我在同一个动画块中同时将一个视图的alpha设置为0,将第二个视图的alpha设置为1。

但是结果并不顺利,我可以看到一个视图淡出,而第二个淡入。 我希望这个动画保持沉默(即没有任何动画)。

P.S.我不能只在没有任何动画的情况下设置这些alpha,因为真实视图是集合视图的一部分,必须淡出,而第二个视图(虚拟)假设在集合视图消失后替换集合视图的单元格之一。

任何方式来做到这一点,为什么iOS呈现这种方式?

谢谢!

+0

你能分享您试图动画代码? – GenieWanted

回答

2

尝试:

[UIView transitionFromView:view1 toView:view2 duration:0.5 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        completion:^(BOOL finished) { 
     // Compeltion code 
    }]; 
+0

谢谢!像魅力一样工作。 –

+0

一个问题:如果我理解正确,该行将从视图层次结构中移除view1。如何在稍后反向制作此动画? –

+0

这会从view的superView中移除view1,如果没有人强有力地引用它,它会得到dealloc。您可以在课程级别保留该视图,并稍后执行相同的转换,这次'fromView:view2 toView:savedView' –