iOS使用动画块转换视图
问题描述:
我正试图在2个子视图之间进行动画处理。目前我尝试了不同的选择,每个选项都有自己的副作用。iOS使用动画块转换视图
该应用程序是一个具有技能子视图,库存子视图和状态子视图的小游戏。我想在技能和广告资源视图之间进行动画制作,同时在主视图底部留下状态子视图。下面我列出了我的各种尝试和他们的副作用。
-
动画从`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; }];
- 的转变完全可以做到的嵌入。
动画,但与其他视图的状态视图过渡。几乎就好像主要观点是用一切来制作动画。
的意见装入只是隐藏在后台主视图和他们以前只是弹出到主窗口。不过,我希望在视图之间进行动画处理,以获得更好的应用程序流。我看到有人删除并添加到主视图中,但我希望将子视图设置为可见/不可见应该具有相同的效果。
任何意见非常感谢。
答
核心动画不知道如何将这些视图与他们的直接祖先(父)区别开来。
将它们分解为单个容器视图。
如:
Instad这个:
Parent
- Other View
- View A
- View B
- Other View
这样:
Parent
- Other View
- Container
- View A
- View B
- Other View
看评论,为更多的细节问题。
你是否尝试在'transitionFromView:...'方法中使用'UIViewAnimationOptionShowHideTransitionViews'选项? (例如添加两个视图,但保持一个隐藏 - 然后用该选项调用'transitionFromView:...') – Steve 2012-02-21 21:35:50
我需要在动画块中添加两个视图吗?如果是这样,那么如果我必须切换回来,它将如何工作?我是否可以调用类似的设置,还是必须删除麻烦的视图并将它们添加回来? – Seb 2012-02-21 21:41:16
该选项('UIViewAnimationOptionShowHideTransitionViews')改变'transitionFromView:...'的工作方式。通常,该方法实际上会修改'fromView'的父视图层次结构(删除'fromView'并添加'toView')。要使用我引用的选项,只需确保在调用方法之前,这两个视图都已存在于视图层次结构中,并确保它们高于您提到的状态子视图。要走相反的方向,只需简单地将参数...转换为fromView,反之亦然。 – Steve 2012-02-21 21:45:15