UIView 在应用 3d 变换期间和之后变得透明
UIView becomes transparent during and after applying 3d transform
在搜索和阅读苹果文档后,我决定向那里的专家寻求帮助。我已将动画添加到我的简单 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;
这将修复动画。
在搜索和阅读苹果文档后,我决定向那里的专家寻求帮助。我已将动画添加到我的简单 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;
这将修复动画。