Я использую GLKViewController/GLKView GLKit, чтобы сделать базовый рисунок OpenGL.
Я хотел бы настроить ViewPort в методе ViewDidLoad. Прочитав справку по GLKView, я подумал, что смогу сделать это так:
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
    if (!self.context) {
        NSLog(@"Failed to create ES context");
    }
    GLKView *view = (GLKView *)self.view;
    view.context = self.context;
    glViewport( 0, 0, view.DrawableWidth, view.DrawableHeight );
}
Проблема в том, что свойства DrawableWidth и DrawableHeight равны нулю.  Почему это?  Когда GLKView вызывает DrawInRect, они установлены, и их значения соответствуют моим ожиданиям.
 
                                                                     
                                                                     
                                                                     
                                                                     
                                                                    
view.frame.sizeдля его настройки. 04.03.2012viewDidLoadтоже не лучшее время для использованияview.frame.size. stackoverflow.com/a/9540935/77567 04.03.2012UIScreen.mainScreen().bounds.widthиheight. 09.01.2016UIScreen.mainScreen().bounds. (Простите мой Swift в вопросе ObjC.) 09.01.2016