【发布时间】:2010-12-23 20:50:47
【问题描述】:
我正在使用以下代码通过 CATransition 在视图之间切换。
CATransition *applicationLoadViewIn = [CATransition animation];
[applicationLoadViewIn setDuration:20];
[applicationLoadViewIn setType:kCATransitionPush];
[applicationLoadViewIn setSubtype:kCATransitionFromTop];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
ViewToSwitchTo *myviewcontroller = [[ViewToSwitchTo alloc] init];
[self.view.layer addAnimation:applicationLoadViewIn forKey:kCATransitionPush];
[self.view addSubview:myviewcontroller.view];
它的功能主要是我想要的。它应该从顶部推动,但是由于某种原因它的行为很奇怪。首先,我要切换到的视图应该从底部进入,但由于某种原因,我要切换到的视图以低不透明度出现在它的顶部,所以你可以看到它们。但是,您还会看到进来的视图,在其自身和另一个视图之上,向上移动了 100 像素,再次具有低不透明度。就在过渡的中点之前,一切正常,你只看到进来的视图和出去的视图,做他们应该做的事情。但是在中途点之后,我要切换到的视图出现在它的最终目的地,在我要切换的视图下方,并且我要切换的视图的不透明度降低了。
这是怎么回事?
【问题讨论】:
-
我不知道这里发生了什么,但如果您还没有观看 2010 年 WWDC 会议 424 和 425 核心动画实践(第 1 部分和第 2 部分),那么您应该。他们可能会或可能不会阐明这个特定问题,但他们充满了非常详细的与 CA 相关的绝妙建议。
-
我想,这就是它的工作方式。见this question
标签: iphone catransition