该代码块用于 Storyboard View Controller 动画及其工作,但不是我想要的。我想要从左到右的动画,但它正在执行“左下”角到右上角的操作。为什么不是从左到右?
第二个我怎样才能停止动画?
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];
最佳答案
- 您需要将代码包装在
CATransaction
中。 - 您需要关闭默认动画(
animated:NO
) - 要使动画生效,必须将其添加到父 View 的图层中。对于所提供的 Controller ,窗口层将是一个明智的选择。
- “从右”“移入”动画不会是“从左到右”动画。
- 请注意,大多数情况下您必须根据当前界面方向修改动画方向。
旁注:更改模态 Controller 的动画是“不受欢迎的”。如果您只使用 subview Controller ,您将大大简化问题。
关于ios - Objective-c CATransition问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18057246/