iOS:在初始化期间获取视图大小

iOS:在初始化期间获取视图大小,ios,opengl-es,uiview,size,Ios,Opengl Es,Uiview,Size,在iOSOpenGL应用程序中,我想获得GLKView的宽度和高度。在viewDidLoad和其他回调中,视图的大小似乎是(0,0) 基本上,我使用的GLKView的大小是固定的,但是对于Retina-/Non-Retina设备的实际尺寸不同,我还想处理未来可能的设备 谷歌搜索,在我看来,在初始化过程中大小还没有固定。但是在初始化期间检测视图的大小似乎是一个标准问题,我想知道这通常是如何处理的?是否有一种方法可以检测一次大小,或者我(例如)是否需要每次在drawInRect()中检测大小,并在检

iOS
OpenGL
应用程序中,我想获得
GLKView
的宽度和高度。在
viewDidLoad
和其他回调中,视图的大小似乎是(0,0)

基本上,我使用的
GLKView
的大小是固定的,但是对于
Retina-/Non-Retina设备
的实际尺寸不同,我还想处理未来可能的设备

谷歌搜索,在我看来,在初始化过程中大小还没有固定。但是在初始化期间检测视图的大小似乎是一个标准问题,我想知道这通常是如何处理的?是否有一种方法可以检测一次大小,或者我(例如)是否需要每次在
drawInRect()
中检测大小,并在检测到更改时重新初始化

谢谢你的提示, 托尔斯滕

但是在初始化期间检测视图的大小似乎是一个标准问题,我想知道这通常是如何处理的


它通常不会在初始化时处理,而是在稍后将要渲染视图时处理。在
视图中将出现:
回调,例如。检查您是否可以将总账初始化推迟到那时。

谢谢您的提示。在代码中,我获取视图并将其转换为GLKView*(它就是)。然后,我可以访问view.frame.size或view.drawableWidth/view.drawableHeight。当我在模拟器中设置视网膜设备时,view.frame.size给了我一个不正确的值。但viewDidLoad:上的值不正确:已存在。view.drawableWidth提供了正确的值,但仅在ViewDidDisplay:之后可用。这并没有多大帮助。基本上,我想要的只是回调中的正确维度,该回调调用一次(在显示视图之前)来初始化我自己的数据(一次)。好吧,我告诉过你这个回调是什么:它是viewwillbeen。实际上,阅读UiViewController文档,您会发现没有太多其他候选对象。既然你还有一些问题,我想是时候考虑一下你的其他错误假设了。最终你会得到一些简洁明了的代码。祝你好运。@GwendalRoué另一位候选人(iOS 5及更高版本)是。