2011-04-03 91 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