【问题标题】:Using CATransition to custom viewcontroller transition animation使用 CATransition 自定义 viewcontroller 过渡动画
【发布时间】: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


【解决方案1】:

不确定,我正确理解了您的问题。可能您应该在控制器 A 中处理 DeviceOrientation。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-04
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多