ios - GLKit的-drawRect : is not called during screen rotation

标签 ios glkit screen-rotation autorotate glkview

我有一个基于 GLKit 的应用程序,其中显示了一些简单的对象。

一切正常,除了屏幕旋转,在此期间 GLKView 没有更新(-drawRect: 没有被调用)。因此,在旋转过程中,投影矩阵不会根据动态变化的屏幕尺寸进行更新,并且对象看起来很糟糕(拉伸(stretch))。

最佳答案

这可能是瞎猜的,因为我没有任何 GLKit 经验,但我确实有 UIView-drawRect 经验: 。尝试更改相关 View 的 contentMode 以重绘:

view.contentMode = UIViewContentModeRedraw;

这将告诉 View ,当它的边界发生变化时,它需要重新绘制它的内容。否则,UIView 将简单地尝试缩放其内容(contentMode 的默认值为 UIViewContentModeScaleToFill)。这样做的原因是缩放那里的内容比重新绘制内容要容易得多,并且 UIView 被设计为尽可能高效。

关于ios - GLKit的-drawRect : is not called during screen rotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15279846/

相关文章:

机器人 : Layout size changes on Orientation

android - iOS 将 Cordova 应用程序作为 webview 嵌入到另一个应用程序中

ios - 我可以创建一个没有 Storyboard的 WatchKit 应用程序(完全在代码中)吗?

ios - 在 iOS 上使用带有多个 VBO 和 IBO(多个对象)的 VAO 进行绘制 OpenGLES 2

ios - 无法绘制不同数量的点

ios - 旋转时更改自定义键盘的高度

ios - UIImagePickerController 相机 View 在 iOS 8 上奇怪地旋转(图片)

ios - Swift3 上的 "Empty collection literal requires an explicit type"错误

ios - 如何使用 indexesOfObjectsPassingTest : in Swift

ios - 如何在iOS5中的正方形上使用图像放置2D纹理