动画正在转换的视图元素

时间:2014-02-17 00:59:57

标签: ios ios7 uiviewanimation uiviewanimationtransition

我对此gif中的转换有疑问:

这是一款名为Dark Sky的漂亮应用程序。

如何在过渡的即将推出的视图中开始制作动画?

这是多个视图在一个视图控制器中动画,还是多个视图控制器动画进出?

在我们滚动到下一个视图时,我们看到元素彼此独立并且彼此独立地移动。

3 个答案:

答案 0 :(得分:2)

尝试查看会话217的Apple's WWDC 2013视频。他们使用iPhone上的锁定屏幕执行类似操作。

具体来说,Dark Sky应用程序似乎使用嵌套的UIScrollViews。这些“行”中的每一个本身都是分页ScrollView内的ScrollView。当拖动外部ScrollView的整个“页面”时,它们将以编程方式等待滚动中的某个点以使每个行“捕获”,然后跟随外部滚动视图。

答案 1 :(得分:1)

我也是这种转变的粉丝,所以我拍了一下:

enter image description here

源代码在Github上,我在blog post中写了我的实现。

  

当用户导航时,我捕获滚动位置。然后我转换   这成为每个页面的“滚动因子”。每页的滚动   factor是介于-1和1之间的数字,表示距离的距离   视图。当页面的滚动因子为0时,该页面位于前面和中间   在应用程序中。滚动因子-1表示页面至少为一   屏幕宽度向左偏移,+1表示相反   方向。

     

随着用户的移动,每个页面都会不断被告知其新的滚动因子   通过应用程序。作为回应,该页面调整了每个标签。   有一个自动布局约束将每个标签固定到左边缘。   该约束的常数与其垂直方向成比例地调整   在页面上的位置 - 换句话说,顶部标签移动较少   底部标签。

     

为了使效果更圆,可以使用相同的比例因子进行调整   当页面滑入和滑出视图时,每个标签的透明度。

答案 2 :(得分:-1)

如果您的部署目标高于7,则可以使用UINavigationControllerDelegate。

https://stackoverflow.com/a/21796231/1215715

如果没有,那就有一个很好的开源库ADTransitionController

https://github.com/applidium/ADTransitionController/blob/master/ADTransitionController/ADTransition.h