将GLKView嵌套到UIViewController中

我正在尝试在UIViewController中使用GLKView,我的代码看起来像这样

CustomViewController.h

#import  #import  @interface CustomViewController : UIViewController { NSString * name; } @property NSString * name; 

CustomViewController.m

 #import "CustomViewController.h" @interface CustomViewController () @end @implementation CustomViewController @synthesize name; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. EAGLContext * context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; CGRect mainScreen = [[UIScreen mainScreen] bounds]; GLKView * viewGL = [[GLKView alloc] initWithFrame:CGRectMake(mainScreen.size.width / 2, mainScreen.size.height / 2, 50, 50)]; viewGL.context = context; [self.view addSubview:viewGL]; } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); } @end 

如何定义GLKView的绘制/渲染方法? 我在哪里可以初始化OpenGL? 有什么建议么?

正如您目前所做的那样,在viewDidLoad初始化OpenGL。

看一下将视图控制器注册为GLKView的委托 。 每当需要重绘时,将调用委托的glkView:(GLKView *)view drawInRect:方法。

本教程可能有所帮助。