iOS使用动画块转换视图

时间:2012-02-21 19:47:28

标签: ios uiview core-animation

我正在尝试在两个子视图之间制作动画。目前我尝试了不同的选项,每个选项都有自己的副作用。

该应用程序是一款小型游戏,具有技能子视图,库存子视图和状态子视图。我想在技能和库存视图之间设置动画,同时将状态子视图保留在主视图的底部。下面我列出了我的各种尝试及其副作用。

  • 来自`animateWithDuration

    的动画
    • [UIView animateWithDuration:0.3 delay:0.3 options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationCurveEaseIn animations:^{ skillView.hidden = NO; inventoryView.hidden = YES; }completion:NULL];
    • 似乎没有过渡。视图刚刚出现。
  • 来自transitionFromView

    的动画
    • [UIView transitionFromView:inventoryView toView:skillView duration:0.5 options:UIViewAnimationOptionTransitionFlipFromRight completion:^(BOOL finished){ inventoryView.hidden = YES; }];
    • 转换完美,但状态视图与其他视图一起转换。几乎就像主视图是用一切动画一样。

视图被加载到隐藏在后台的主视图中,它们只是弹出到主窗口中。但是,我想在视图之间制作动画以获得更好的应用程序流。我已经看到人们删除并添加到主视图,但我希望将子视图设置为可见/不可见应具有相同的效果。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

核心动画不知道除了直接祖先(父级)之外如何为这些视图制作动画。

将它们分成单个容器视图。

例如:

Instad of this:

Parent
 - Other View
 - View A
 - View B
 - Other View

有这个:

Parent
 - Other View
 - Container
   - View A
   - View B
 - Other View

有关详细信息,请参阅提问。