刚开始尝试让OpenGL ES在iPhone上工作,但我从OpenGL模板创建了一个工作演示,并且希望将其添加到另一个应用程序,这是一个标准的UIViewController应用程序。在四处搜索后,似乎我无法将CAEAGLLayer添加到CALayer又名UIView。我会如何去做这件事?还是我完全错了,我在做什么。在UIView或CALayer中显示CAEAGLLayer
干杯任何帮助
刚开始尝试让OpenGL ES在iPhone上工作,但我从OpenGL模板创建了一个工作演示,并且希望将其添加到另一个应用程序,这是一个标准的UIViewController应用程序。在四处搜索后,似乎我无法将CAEAGLLayer添加到CALayer又名UIView。我会如何去做这件事?还是我完全错了,我在做什么。在UIView或CALayer中显示CAEAGLLayer
干杯任何帮助
我实际上必须做的是将EAGLView -initWithCoder更改为-initWithFrame,并对方法进行适当更改以处理帧。一旦我做到了这一点,并初始化与initWithFrame视图它的工作。
只需使用一个UIView并添加:
+ (Class)layerClass {
return [CAEAGLLayer class];
}
这UIView的现在是一个CAEAGLLayer,这样你就可以添加视图像正常的另一个的UIView的子视图。
这应该是被接受的答案。在SWIFT是: 覆盖类VAR layerClass:AnyClass { 获得{ 回报CAEAGLLayer.self }} – Guig 2016-10-04 01:44:39
我面临着同样的问题。一直试图解决它现在几个小时。你能否详细说明你是如何解决这个问题的?谢谢 – pnizzle 2012-10-08 02:01:10
这是很久以前所以我真的推动它,但我最初有EAGLView自定义类实现-initWithCoder方法。我改为实现了-initWithFrame,完成了该方法所需的所有初始化,并在初始化时调用了该方法。 简而言之,实现-initWithFrame而不是-initWithCoder方法。 – Rudiger 2012-10-08 02:48:11
好吧,我把代码从initWithCoder移到了我的viewDidLoad中,删除了initwithcoder(),并且把self.layer改成了self.view.layer。但是我现在面临的问题是NSStringFromClass([[self.view.layer] class])返回一个CALayer。 +(Class)layerClass没有被调用,因为我使用UIViewController而不是UIView。因此我得到错误:[CALayer setDrawableProperties:]:无法识别的选择器。我相信我只需要通过这个和我完成?谢谢 – pnizzle 2012-10-08 02:58:20