Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在UIView或CALayer中显示CaeAglayer_Iphone_Uiviewcontroller_Opengl Es_Calayer - Fatal编程技术网

Iphone 在UIView或CALayer中显示CaeAglayer

Iphone 在UIView或CALayer中显示CaeAglayer,iphone,uiviewcontroller,opengl-es,calayer,Iphone,Uiviewcontroller,Opengl Es,Calayer,尝试让OpenGL ES在iPhone上工作是一件新鲜事,但我已经从OpenGL模板创建了一个工作演示,并希望将其添加到另一个应用程序中,这是一个标准的UIViewController应用程序。在四处搜索之后,我似乎无法将子视图CaeAglayer添加到CALayer视图。我该怎么做呢?还是我的所作所为完全错了 欢迎提供帮助。我相信您正在寻找CALayer的insertSublayer方法或addSublayer方法。我相信您正在寻找CALayer的insertSublayer方法或addSub

尝试让OpenGL ES在iPhone上工作是一件新鲜事,但我已经从OpenGL模板创建了一个工作演示,并希望将其添加到另一个应用程序中,这是一个标准的UIViewController应用程序。在四处搜索之后,我似乎无法将子视图CaeAglayer添加到CALayer视图。我该怎么做呢?还是我的所作所为完全错了


欢迎提供帮助。

我相信您正在寻找CALayer的insertSublayer方法或addSublayer方法。

我相信您正在寻找CALayer的insertSublayer方法或addSublayer方法。

只需使用UIView并添加:

+ (Class)layerClass {
    return [CAEAGLLayer class];
}

该UIView现在是一个CaeAglayer,因此您可以将该视图添加为另一个UIView的子视图,如普通视图。

只需使用UIView并添加:

+ (Class)layerClass {
    return [CAEAGLLayer class];
}

该UIView现在是一个CaeAglayer,因此您可以将该视图添加为另一个UIView的子视图,如普通视图。

我实际上要做的是将EAGLView-initWithCoder更改为-initWithFrame,并对处理该帧的方法进行适当的更改。一旦我这样做并用initWithFrame初始化视图,它就工作了。

我实际上要做的是将EAGLView-initWithCoder更改为-initWithFrame,并对处理帧的方法进行适当的更改。一旦我这样做并用initWithFrame初始化视图,它就工作了。

我面临着同样的问题。我已经试了好几个小时了。你能详细说明一下你是如何解决这个问题的吗?感谢您这是很久以前的事了,所以我真的在推动它,但我最初是由EagleView自定义类实现-initWithCoder方法的。相反,我实现了-initWithFrame,完成了该方法中所需的所有初始化,并在初始化时调用了它。简而言之,实现-initWithFrame而不是-initWithCoder方法。好吧,我将代码从initWithCoder移动到我的viewDidLoad,删除了initWithCoder,Ofcz将self.layer更改为self.view.layer。但我现在面临的问题是NSStringFromClass[[self.view.layer]类]正在返回CALayer未调用ClasslayerClass,因为我使用的是UIViewController而不是UIView。因此,我得到错误:[CALayer setDrawableProperties:]:无法识别的选择器。我相信我只需要通过考试,我就完成了?谢谢你,不要在viewDidLoad中这样做,在initwithframe中这样做,我从来没有探究过原因,但我猜这里面有一些不同的初始化。对不起,那是很久以前的事了。现在一切都好了,工作很好。我创建了一个UIView子类,在它的initWithFrame中,我放置了initWithCoder中的代码。我还添加了支持方法。然后我添加了方法+ClasslayerClass以返回[CaeAglayer类]。在我的viewController中,我允许初始化我的自定义UIView类,所有的动画和东西现在都可以工作了。我仍然会尝试你的方法,看看结果如何。我也面临同样的问题。我已经试了好几个小时了。你能详细说明一下你是如何解决这个问题的吗?感谢您这是很久以前的事了,所以我真的在推动它,但我最初是由EagleView自定义类实现-initWithCoder方法的。相反,我实现了-initWithFrame,完成了该方法中所需的所有初始化,并在初始化时调用了它。简而言之,实现-initWithFrame而不是-initWithCoder方法。好吧,我将代码从initWithCoder移动到我的viewDidLoad,删除了initWithCoder,Ofcz将self.layer更改为self.view.layer。但我现在面临的问题是NSStringFromClass[[self.view.layer]类]正在返回CALayer未调用ClasslayerClass,因为我使用的是UIViewController而不是UIView。因此,我得到错误:[CALayer setDrawableProperties:]:无法识别的选择器。我相信我只需要通过考试,我就完成了?谢谢你,不要在viewDidLoad中这样做,在initwithframe中这样做,我从来没有探究过原因,但我猜这里面有一些不同的初始化。对不起,那是很久以前的事了。现在一切都好了,工作很好。我创建了一个UIView子类,在它的initWithFrame中,我放置了initWithCoder中的代码。我还添加了支持方法。然后我添加了方法+ClasslayerClass以返回[CaeAglayer类]。在我的viewController中,我允许初始化我的自定义UIView类,所有的动画和东西现在都可以工作了。我仍然会尝试你的方法,看看结果如何。这应该是公认的答案。在swift中是:override class var layerClass:AnyClass{get{return caeaglayer.self}}这应该是公认的答案。在swift中,它是:重写类var layerClass:AnyClass{get{return caeaglayer.self}