CATransform3D始终成为最顶层的视图

时间:2011-10-26 17:52:21

标签: ios xcode catransform3d

我正在使用CATransform3D转换一个UIView的图层。问题是我无法在其上方显示其他控件(不是此转换视图的子视图)。

例如这段代码:

[UIView flipTransitionFromView:self.standardImageView 
toView:self.flippedImageView 
duration:1.0f 
completion:NULL];    

[self.view insertSubview:flippedCloseButton aboveSubview:flippedImageView];

不起作用 - flippedCloseButton总是在flippedImageView后面。

flipTransitionFromView是一种仅进行所述3d变换的方法。

非常感谢任何有关如何解决它的想法!

修改

我有点通过修改视图图层的'zPosition:

来解决它
self.flippedCloseButton.layer.zPosition = self.flippedImageView.layer.zPosition + 1;

但这是正确的方法吗?

安德

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,但更改zPosition并没有解决问题。在给图层提供透视时使用zPosition(当z更大时它看起来更小),但并不意味着宽容我相信的可见性序列。

我不完全了解发生了什么,但是当多个子层存在于同一“层级”时,“可见的内容”这个问题没有明确定义。我甚至可以看到一部分层是可见的而另一部分则不是。

在我的情况下,我通过在超级层中放置必须位于顶部的元素来解决这个问题。这确保了它们始终可见。

在图层和动画方面,我绝不是专业人士,但在教育自己的过程中,我制作了一个应用程序(PerspectiveTest),它解释了图层参数和透视图如何协同工作的一些基础知识。可能会有所帮助: http://itunes.apple.com/nl/app/perspectivetest/id481006743?mt=8

此致 Voppe