0
我有两个视图 - 控制A和B.一个支持人像和风景,B只支持portrait.The下面的代码是在A.使用CATransition自定义视图 - 控制过渡动画
UIStoryboard *board = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
B *vcb = [board instantiateViewControllerWithIdentifier:@"B"];
CATransition *a=[CATransition animation];
a.duration = 0.4f;
a.type = kCATransitionMoveIn;
a.subtype = kCATransitionFromTop;
a.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[self.view.window.layer addAnimation:a forKey:@"kTransitionAnimation"];
[self presentViewController:vcb animated:NO completion:nil];
而就B,我做的dissmiss。
CATransition *a=[CATransition animation];
a.duration = 0.4f;
a.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
a.type = kCATransitionReveal;
a.subtype = kCATransitionFromBottom;
[self.view.window.layer addAnimation:a forKey:@"dismiss"];
[self dismissViewControllerAnimated:NO completion:nil];
它可以在纵向模式下正常工作。但是,当我做下列步骤时,它会出错: 1.在肖像模式下呈现B 2.将手机旋转至风景,然后单击以消除B. 3.动画错误。 任何人都可以解释这一点,以及如何解决它。我希望B的行为与肖像模式相同。
为什么您要在当前模型中添加动画,您只是在执行kCATransitionFromTop和kCATransitionFromBottom,这是默认情况下的动画。 –
这只是一个演示。所以这个动画的方向可能是kCATransitionFromLeft或kCATransitionFromRight。关键是为什么动画不对,我把手机变成风景。谢谢! – user6299706