小编Phi*_*hil的帖子

iOS CATransform3D坐标

真的很感激这方面的任何帮助.我在视图上应用了3D变换,需要识别渲染视图的边缘坐标,这样我就可以呈现与其相邻的另一个视图(没有任何像素间隙).具体来说,我希望通过动画角度来折叠像传单一样的一系列视图("页面").

    int dir = (isOddNumberedPage ? 1 : -1);
    float angle = 10.0;

    theView.frame = CGRectMake(pageNumber * 320, 0, 320, 460);        
    CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
    rotationAndPerspectiveTransform.m34 = -1.0 / 2000; // Perspective
    rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 
           dir * angle / (180.0 / M_PI), 0.0f, 1.0f, 0.0f);
    theView.layer.transform = rotationAndPerspectiveTransform;

    // Now need to get the top, left, width, height of the transformed view to correct the view's left offset
Run Code Online (Sandbox Code Playgroud)

我通过检查CALayer尝试了很多方法,尝试使用我发现的一些矩阵数学代码片段失败,但是无法破解它甚至接近(取决于角度,一个好的20像素输出).有没有一种方法可以做到这一点,而无需花费2周阅读矩阵数学教科书?

core-animation objective-c ios

3
推荐指数
1
解决办法
3385
查看次数

标签 统计

core-animation ×1

ios ×1

objective-c ×1