【问题标题】:iOS "slide in from left/right" view animationsiOS“从左/右滑入”视图动画
【发布时间】:2012-10-31 18:41:36
【问题描述】:

我的 iOS6 应用程序有一个多级表视图,其叶节点打开单独的视图。表格第一级的动画将旧视图向左滑出,新视图从右侧滑入。从表格视图转换到非表格视图时,我还想使用这个滑入式动画。如何?

这里有更多信息:

在表格视图的第一层,有披露指标。单击一个时,表格的第一级向左滑动,第二级视图从右侧滑入。好的。

在表格的第二层,有详细信息披露按钮,可将用户带到表格中该元素的详细信息视图。

我也想在这里提供相同的动画:表格视图应该向左滑动,新视图应该从右侧滑入。

首先,我认为这是在这种情况下使用的正确动画吗?

其次,你知道为什么这个“滑入”动画不在下面UIViewAnimationTransition 的标准视图动画中吗?

typedef enum {
   UIViewAnimationTransitionNone,
   UIViewAnimationTransitionFlipFromLeft,
   UIViewAnimationTransitionFlipFromRight,
   UIViewAnimationTransitionCurlUp,
   UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;

最后,如果我确实想在动画中使用与表格视图相同的幻灯片,但它不能作为标准视图之一使用,我应该如何在表格视图和非表格视图之间转换时添加此动画?

【问题讨论】:

  • 我认为这不是默认动画的一部分,因为它可以通过翻译视图(将frame.size.width 添加到frame.origin.x)简单地复制,而不是其他动画。要重现此动画:为什么不将视图包装到视图控制器中并将其推送到导航控制器上?
  • 是的,使用导航控制器

标签: ios ios6 core-animation uiviewanimation


【解决方案1】:

通常这种类型的动画在UINavigationController 中完成,并且是将新的viewController 推入堆栈的结果。如果你想模拟它,你需要做的就是将新暴露的视图添加到你当前的基础视图中,在当前视图的右侧(即离屏)并使用UIViewanimateWithDuration:animations:completion:方法移动屏幕上和屏幕外的视图都向左一屏。 (使用 completion: 块删除原始视图或将其保留在原处,以便您可以轻松地将其动画化回到屏幕上。)

【讨论】:

  • 抱歉,不清楚您访问基本视图的位置...这是什么意思?
  • 基本视图是指当前 viewController 的视图。将新视图放在它的右侧,并为它们向左移动动画,直到当前视图离开屏幕。然后,用新视图替换 viewController 的视图。
  • 谢谢 - 我试过了,你是对的:这是一个很好的方法。 +1
猜你喜欢
  • 2021-11-28
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-05
  • 2016-03-20
相关资源
最近更新 更多