0

我正在使用 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;

但这是正确的方法吗?

安德里斯

4

1 回答 1

0

我有一个类似的问题,但改变 zPosition 并没有解决它。zPosition 用于为图层提供透视图(因此当 z 较大时它看起来更小),但我相信这并不意味着放弃可见性序列。

我不完全理解发生了什么,但是当几个子层出现在同一个“层级”时,“什么是可见的”这个问题没有很好的定义。我什至让图层的那一部分可见,而另一部分则不可见。

在我的案例中,我通过将必须位于超级层顶部的元素解决了这个问题。这确保它们始终可见。

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

问候, Voppe

于 2011-11-22T22:00:03.487 回答