gpt4 book ai didi

ios - 向 CAlayer 添加带消失点投影的扭曲

转载 作者:行者123 更新时间:2023-11-29 13:18:02 25 4
gpt4 key购买 nike

我想以向其添加透视图(具有两个消失点)的方式转换 UIView(见下文)。

UIView with applied transform

我想对 View 执行此操作的原因是因为我希望转换后的 View 的内容成为 UITableView 的单元格。

我是这种编码的新手,但我假设我必须更改属于 subview 的 CALayer。但是,我相信,我感兴趣的转换不能使用 CATransform3D 创建。

有人知道如何解决这个问题吗?

最佳答案

看来我找到了规避/解决问题的方法:

使用 CATransform3D 转换,可以通过将 View 分成两部分(两个独立的 UITableView)来接近有利位置。这些应该由实现必要和协议(protocol)的 UIViewController(而不是 x 代码提供的 UITableViewController)管理。

然后在 viewDidLayoutSubviews: 方法中使用下面的代码来转换两个 tableview。

- (void) viewDidLayoutSubviews {

CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
// left View
// vantage point
rotationAndPerspectiveTransform.m34 = 1.0 / -150.0;
// Z-rotation of 90°
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 90.0 * M_PI/180.0, 0, 0,1);
// X-rotation of 25°
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, -25.0 * M_PI/180.0, 1, 0,0);
// left view
[self.view viewWithTag:1].layer.transform = rotationAndPerspectiveTransform;


//right view
rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -150;
// Z-rotation of 90°
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 90.0 * M_PI / 180.0, 0, 0,1);
// X-rotation of 30°
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 25.0 * M_PI / 180.0, 1, 0,0);
// right view
[self.view viewWithTag:2].layer.transform = rotationAndPerspectiveTransform;
}

一旦转换,两个 tableview 就可以移动,以便它们整齐地组合在一起。剩下的唯一工作就是将一台电视的滚动与另一台连接起来。我还没有想出那个。

关于ios - 向 CAlayer 添加带消失点投影的扭曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15147746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com