我正在尝试在包含控件的 UIView 前面使用 OpenGLES 动画层。例如,我想在 UIButton 的 FRONT 中渲染动画(因此动画对象在通过时从视图中传递(遮挡)按钮的前面)。
尽管有几个相关的线程,但仍无法找到答案。
我的主视图控制器中有一个视图,类型为 GLKView。我有一个单独的 xib (View.xib),其中包含一个 UIView 和一个 UIButton。
在我的 viewDidLoad 中,我有:
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!self.context) {
NSLog(@"Failed to create ES context");
}
GLKView *glView = (GLKView *)self.view;
glView.context = self.context;
glView.drawableDepthFormat = GLKViewDrawableColorFormatRGB565;
glView.opaque = NO;
glView.alpha = 1.0;
glView.backgroundColor = [UIColor clearColor];
UIView *controlView = [[[NSBundle mainBundle]loadNibNamed:@"View" owner:self options:nil] objectAtIndex:0];
controlView.frame = CGRectMake(100,200,100,100);
controlView.backgroundColor = [UIColor greenColor];
controlView.alpha = 1;
controlView.opaque = YES;
CALayer *controlViewLayer = controlView.layer;
[controlViewLayer insertSublayer:glView.layer above:controlViewLayer];
[self setupGL];
在drawInRect我有: glClearColor(0,0,0,0);
结果是我的 GLKView 动画以黑色/清晰的背景呈现,但我看不到包含按钮的 UIView。
有任何想法吗?谢谢,戴夫