2010-07-22 60 views
0

你好,谢谢你看我的问题。动画层定位

我有一个仅支持横向(左或右按钮)的应用程序。它在横向启动。太棒了 - 它以正确的方向启动,它甚至可以在左右风景之间正确地重新定位视图(我已经定制了支持的方向方法)。

转到我的问题:我启动应用程序并添加一个视图。我开始动画,然后将第一个视图与第二个视图(第二个视图与第三个视图等)交换。

我的问题是动画不一致。

如果我指定kCATransitionFromLeft,我的转换将从TOP或BOTTOM(取决于设备的方向)滑入。如果我从kCATransitionFromRight指定,我会得到相同的行为。

如果我指定了kCATransitionFromBottom或kCATransitionFromTop - 那么当新视图从侧面滑入时,转换正确显示,但是它来自哪一侧仍然取决于设备的方向。

我希望我的视图始终从右向左滑动。显然我可以写一个if/then来实现这个使用kCATransitionFromBottom或kCATransitionFromTop,但我的想法是,必须有一个更简单的方法。

那么,有没有一种简单的方法让动画始终根据方向始发?为什么kCATransitionFromBottom总是不是始自底部?我怎么会开始修改这个行为?

感谢您的任何见解。

+0

你可以发布你的动画代码吗? – 2012-04-03 14:19:59

回答

1

我正在对我正在进行的项目做同样的事情,动画是用滑动开始的。唯一的区别是我正在交换UIImages。

这将有助于如果你能发布一些代码,我没记错的话,现在的唯一事情是让你检查,如果家长和交换意见正确支持横向视图:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    if (interfaceOrientation == UIInterfaceOrientationLandscapeRight || 
     interfaceOrientation == UIInterfaceOrientationLandscapeLeft) { 
     return YES; 
    } 
    return NO; 
} 

希望这有助于!

+0

是的 - 基本上它是使用Autororate方法设置根vc的问题(正如您引用的那样) - 然后 - 这里是我出错的地方 - 所有添加的子视图还必须实现AutoRotate方法,并且它们必须简单地返回“否” - 实质上,它们不会在正确旋转的根的上下文中旋转。 – isaac 2010-07-23 15:01:58