在应用3d变换期间和之后,UIView变得透明

时间:2015-03-05 22:36:55

标签: ios objective-c animation uiview

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

如何保持视图背景不透明?除了.m34 perspective

之外,我还需要设置其他.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) {
                             ...
                        }
                     }];
}

1 个答案:

答案 0 :(得分:0)

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

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

mainView.layer.zPosition = -600;

这将修复动画。