Ipad Portrait 中的 ARSCNView CGAffineTransform 错误

Posted

技术标签:

【中文标题】Ipad Portrait 中的 ARSCNView CGAffineTransform 错误【英文标题】:ARSCNView CGAffineTransform error in Ipad Portrait 【发布时间】:2020-10-09 13:40:36 【问题描述】:

当我尝试在 iPad 上垂直翻转 ARSCNView 时,我发现了一个非常奇怪的错误,我需要做的假设是:

sceneView.transform = sceneView.transform.scaledBy(x: 1, y: -1)

应该垂直翻转 ARSCNView。 它旋转 90 度而不是翻转。奇怪的是,下面给出了相同的结果:

sceneView.transform = sceneView.transform.scaledBy(x: -1, y: 1)

缩放 X 和 Y 不应旋转视图。

这个问题发生的地方: Ipad pro 12.9 2019,ios 14.0.1,纵向模式

我还尝试了什么: 一切都可以在 iPhone 上运行。

以下工作但不是我需要的

sceneView.transform = sceneView.transform.rotated(by: .pi)
    在同一个设备上,风景可以双向工作。该错误仅在纵向或纵向倒置时发生。

有人对我的出行方式有任何想法吗?

【问题讨论】:

【参考方案1】:

你可能想要

sceneView.transform = CGAffineTransform(scaleX: -1, y: 1)

因为scaledBy 缩小了现有转换,可能不是.identity

但您可能也想查看this answer。

【讨论】:

这对我来说给出了相同的结果我检查它给出了相同的变换矩阵 (a=-1, b=0, c=0, d = 1) 并且由于某种原因,视图被旋转90度而不是翻转。你提到的另一篇文章很感兴趣,我会检查的。谢谢!

以上是关于Ipad Portrait 中的 ARSCNView CGAffineTransform 错误的主要内容,如果未能解决你的问题,请参考以下文章

iPad/iPhone定向体类

iPad的自适应布局

ipad 横向/纵向图像

iPad:根据方向在 applicationDidFinishLaunching 期间添加全屏图像

iPad:如何根据方向(横向/纵向)显示不同的屏幕

更改纵向屏幕的 CSS(例如 iPad)[重复]