【发布时间】:2015-09-23 06:12:46
【问题描述】:
我有一个从 Apple 的旧 OpenGLES 示例构建的通用横向应用程序,当我在 XCode 6 或 7 中构建时,视图是横向的:
Apple 之前已经破坏了我的旋转,以前我只是通过使用变换来旋转和缩放我的视图来修复它,效果很好。
使用 XCode 6/7,如果我使用 CGAffineTransformMakeRotation() 旋转图层,那么旋转是正确的,但它保留了原始纵横比:
这应该很容易通过缩放来解决,但奇怪的是我无法缩放它以适应屏幕。我可以匹配宽度或高度:
但无论我使用什么值来缩放高度/宽度,都不可能同时缩放高度和宽度到屏幕。这是我设置(应该是)正确的缩放值时得到的结果:
我已经尝试了一堆缩放,但由于某种原因,宽度和高度似乎并不完全相互独立。自动布局已关闭,我找不到任何设置约束的地方。我也尝试设置视图边界和框架,但它具有与我使用变换时完全相同的奇怪缩放限制。
如果我旋转 OpenGL 缓冲区的像素尺寸,那么它会以正确的大小显示,但右侧被截断。我也找不到任何方法来解决这个问题:
使视图正确匹配的唯一方法是将应用的 plist 方向从横向左/右更改为仅标准纵向。但这会在与其他音乐应用程序交互时产生方向问题,因为我的软件实际上并不是纵向运行的——切换应用程序时方向有时会翻转,而我的应用程序启动时有一半时间是颠倒的。
【问题讨论】:
标签: objective-c opengl-es ios8 orientation ios9