ios - Objective-c CATransition问题

标签 ios

该代码块用于 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];

最佳答案

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

旁注:更改模态 Controller 的动画是“不受欢迎的”。如果您只使用 subview Controller ,您将大大简化问题。

关于ios - Objective-c CATransition问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18057246/

相关文章:

ios - Xcode 添加子容器到容器 View

ios - 横向播放视频后状态栏下的导航栏

ios - URLForUbiquityContainerIdentifier 总是返回 nil

ios - 应用程序关闭后 UILocalNotification 为零

ios - 在 sqlite 数据库中插入 blob (objective-c)

ios - Apple Pay 是否需要与新的 iOS 应用程序集成?

iOS 推送通知仅由开发设备接收

ios - 有什么方法可以检测 iOS 6 上的漫游状态吗?

ios - 检测事件文本字段的类型

ios - 我应该在处理 HTTP 错误后创建新的 NSURLSessionTask 吗?