当核心动画在其上运行时,是否可以在另一个视图的顶部保持视图?
我正在从顶部和底部进出视图。目前,滑出的视图在当前可见的每个其他视图的顶部滑动,我想知道我是否可以使视图保持在动画效果之上。
以下是我现在拥有的动画之一的示例:
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 |
| ^ ^ ^ ^ ^ ^ |
| |
| |
| |
| |
| |
| |
+------------------------------+
答案 0 :(得分:3)
经过一番游戏后,我意识到CoreAnimation尊重UIViews的自然堆叠顺序。这意味着如果在动画之后添加了视图,它将被置于顶部,动画将在其后面发生。
要更改视图的堆叠顺序,我可以使用以下消息:
- (void)bringSubviewToFront:(UIView *)view;
- (void)sendSubviewToBack:(UIView *)view;
UIViews的堆叠顺序功能和行为是detailed in other questions and answers。