【问题标题】:Keeping objects on top of CoreAnimation effects将对象保持在 CoreAnimation 效果之上
【发布时间】:2011-04-03 04:13:43
【问题描述】:

是否可以在 Core Animation 运行时将视图保持在另一个视图之上?

我正在从顶部和底部滑入和滑出视图。目前,滑出的视图会滑出当前可见的所有其他视图的顶部,我想知道是否可以使视图保持在动画效果的顶部。

这是我现在拥有的动画之一的示例:

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   |
|     ^   ^   ^   ^   ^  ^     |
|                              |
|                              |
|                              |
|                              |
|                              |
|                              |
+------------------------------+ 

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    在玩了一堆之后,我意识到 CoreAnimation 尊重 UIViews 的自然堆叠顺序。这意味着如果一个视图是在动画之后添加的,它将被放置在顶部并且动画将发生在它的后面。

    要更改视图的堆叠顺序,我可以使用以下消息:

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

    UIViews的堆叠顺序功能和行为是detailed in other questions and answers

    【讨论】:

    • 或者,您可以修改视图层的 zPosition。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多