UIView在应用三维变换期间和之后变为透明



在搜索并阅读了苹果的文档后,我决定向那里的专家寻求帮助。我已经在我的简单uiview中添加了动画,将其评为法式向外的门。它适用于文件,但在动画期间和之后的视图将变得透明。当我对2D动画执行相同操作时,视图将保持不透明。

如何保持视图背景不透明?除了.m34透视之外,我还需要设置其他.mxx值吗

我的代码如下:

{
 [self setAnchorPoint:CGPointMake(1.5,0.5) forView:mainView];
...
 [UIView animateWithDuration:.5
                     animations: 
^{
CATransform3D leftTransform = CATransform3DIdentity;
                         leftTransform.m34 = -1.0f/500; //dark magic to set the 3D perspective
                         leftTransform = CATransform3DRotate(leftTransform, - M_PI_2/2.2, 0, 1, 0);                        
                         mainView.layer.transform = leftTransform;
 }
                     completion:^(BOOL finished) {
                         if (finished) {
                             ...
                        }
                     }];
}

将zposition设置为足够大的值,以便旋转的视图在层次结构中保持在其上方。

在上面的代码中,插入此代码

mainView.layer.zPosition = -600;

这将修复动画。