【发布时间】:2017-12-06 09:55:42
【问题描述】:
我有两个viewcontroller A和B。A支持纵向和横向,B只支持纵向。以下代码在A上。
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 上,我进行解雇。
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。关键是为什么动画错误,我把手机变成风景。谢谢!
标签: ios objective-c iphone