0

我有 1 个视图,在这个视图中我有 1 个 UIImageView 和 UILabel,当我旋转视图时,视图的一半消失了。

这是我的代码

viewToAnimate 是包含图像和标签的视图。

CATransform3D _3Dt = CATransform3DRotate(viewToAnimate.layer.transform, DEGREES_TO_RADIANS(beginValue), 0.0, 1.0, 0);
_3Dt.m34 = 1.0 / -300;

viewToAnimate.layer.transform = _3Dt;

CATransform3D _scale;

if (needZoom) {
    _scale = CATransform3DScale(viewToAnimate.layer.transform , 1+scale, 1+scale, 1+scale);

    if (_scale.m11 > 1) {
        _scale.m11 = 1;
        _scale.m22 = 1;
        _scale.m33 = 1;
    }
}
else  {
    _scale = CATransform3DScale(viewToAnimate.layer.transform , 1-scale, 1-scale, 1-scale);
}

viewToAnimate.layer.transform = _scale;
//viewToAnimate.layer.zPosition = sin(DEGREES_TO_RADIANS(beginValue)*MOSAIC_WIDTH)+1;
4

2 回答 2

3

DEGREES_TO_RADIANS 的值是多少?有没有机会 M_PI/2?您的代码告诉您正在围绕 y 轴旋转。请参阅第一行中的最后 3 个参数:

0.0, 1.0, 0

如果您提供这个,那么这是预期的行为 - 考虑一个面向您的平面并想象它围绕 y 轴旋转 +/- 90 度,它肯定会消失。

于 2013-01-28T13:44:15.547 回答
1

正如 Diego 对另一个答案的评论中提到的,这可能是由 zPosition 问题引起的。通过将 zPosition 设置为更高的值,使您的视图高于所有其他视图。

于 2015-08-07T07:40:13.020 回答