2010-07-22 82 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