2011-04-03 92 views
2

在運行核心動畫的同時,是否可以在另一個視圖之上保留視圖?在CoreAnimation特效之上保留對象

我滑動視圖進出頂部和底部。目前,滑出的視圖滑過當前可見的每個其他視圖的頂部,我想知道是否可以使視圖停留在動畫效果之上。

這裏是動畫的一個的一個例子,我現在有:

CATransition *push = [CATransition animation]; 
push.type = kCATransitionPush; 
push.subtype = kCATransitionFromTop; 
[self.grid.layer addAnimation:push forKey:kCATransition]; 

// Changes to the view here 

[CATransaction commit]; 

我想保持可見不重疊的方式滑出視圖的原始位置的視圖。

這是屏幕的佈局的ASCII圖:

+------------------------------+ 
| View I want to keep on top | 
|------------------------------| 
|        | 
|------------------------------| 
| View that will slide up | 
| ^^^^^^  | 
|        | 
|        | 
|        | 
|        | 
|        | 
|        | 
+------------------------------+ 

回答

3

一堆打轉轉後,我已經意識到CoreAnimation尊重UIViews的自然堆疊順序。這意味着如果在動畫之後添加了視圖,它將置於頂部,並且動畫將在其後面發生。

要改變的意見的堆疊順序,我可以使用下面的消息:

- (void)bringSubviewToFront:(UIView *)view; 
- (void)sendSubviewToBack:(UIView *)view; 

層疊順序的功能和UIViews的行爲是detailed in other questions and answers

+0

+1回來回答你自己的問題。 – paulbailey 2011-04-03 10:47:22

+0

或者,您可以修改視圖圖層的zPosition。 – 2011-04-03 10:49:23