0

故事板视图控制器动画的代码块及其工作但不是我想要的......我想要从左到右的动画,但它在右上角做“左下角”。不是从左到右为什么?

第二我如何停止动画?

UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
UIViewController *destinationController = (UIViewController*)[self destinationViewController];

CATransition* transition = [CATransition animation];
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromRight;



[destinationController.view.layer addAnimation:transition forKey:kCATransition];
[sourceViewController presentViewController:destinationController animated:YES completion:nil];
4

2 回答 2

1
  1. 您需要将代码包装在CATransaction.
  2. 您需要关闭默认动画 ( animated:NO)
  3. 要使动画生效,必须将其添加到 superview 的图层中。在呈现控制器的情况下,窗口层将是一个明智的选择。
  4. “从右”“移入”动画不会是“从左到右”的动画。
  5. 请注意,在大多数情况下,您必须根据当前界面方向修改动画方向。

旁注:更改模态控制器的动画是“不赞成的”。如果您只使用子视图控制器,您将大大简化问题。

于 2013-08-05T13:53:50.317 回答
0

我相信您正在寻找的“从左到右”动画可能是UINavigationController. 这也可以通过kCATransitionPush转换类型来实现。此外,presentViewController触发“模态”动画(从底部),因此如果您不使用NO.animatedpresentViewControllerUINavigationController

于 2013-08-05T13:51:48.887 回答