我正在尝试为我的视图控制器设计不同的布局。谷歌搜索后,我从 SO 得到了这个答案。基本上,答案指示我设置 2 个场景,一个用于横向,一个用于纵向,当设备旋转时,隐藏一个并显示另一个。
我的问题是如果我想为旋转过程添加一个甜美的动画怎么办?例如,既然我可以在不同的场景中设置相同的视图,我可以为这些视图设置运动路径并消失吗?或者,如果更容易,我可以添加一些旋转和淡出动画吗?
我对 Core Animation 很熟悉,所以详细的解释对我来说非常有用。非常感谢提前!
我正在尝试为我的视图控制器设计不同的布局。谷歌搜索后,我从 SO 得到了这个答案。基本上,答案指示我设置 2 个场景,一个用于横向,一个用于纵向,当设备旋转时,隐藏一个并显示另一个。
我的问题是如果我想为旋转过程添加一个甜美的动画怎么办?例如,既然我可以在不同的场景中设置相同的视图,我可以为这些视图设置运动路径并消失吗?或者,如果更容易,我可以添加一些旋转和淡出动画吗?
我对 Core Animation 很熟悉,所以详细的解释对我来说非常有用。非常感谢提前!
这里有几个选项。您正在寻找的主要方法是:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration;
和
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;
如果您想在旋转发生时在屏幕上移动元素,您最好更改元素的框架,而不是创建单独的视图文件。使用任何运动动画都需要在两者之间进行一些映射,而我以前从未听说过这样的事情。同样,如果您只是更改框架,您基本上可以执行您想要的任何屏幕移动(对于视图和子视图)。
要进行淡入淡出,您可以在第一种方法中抛出一个动画块:
[UIView animateWithDuration:duration
animations:^{
// set alphas for old and new views here.
}];