我正在使用以下代码在带有 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 像素,再次具有低不透明度。就在过渡的中点之前,一切正常,你只看到进来的视图和出去的视图,做他们应该做的事情。但是在中途点之后,我正在切换到的视图出现在其最终目的地,在我正在切换的视图下,并且我正在切换的视图的不透明度降低了。
这里发生了什么?