Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.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
用OpenGL实现Ios UIButton子类化_Ios_Opengl Es_Uibutton - Fatal编程技术网

用OpenGL实现Ios UIButton子类化

用OpenGL实现Ios UIButton子类化,ios,opengl-es,uibutton,Ios,Opengl Es,Uibutton,是否可以创建UIButton的子类,在OpenGL ES中绘制按钮?到目前为止,我有一个只使用OpenGL ES的游戏应用程序,出于性能和美观的原因,我不想在上面添加合成的UIkit元素。再说一遍,我真的不想针对rect实现触摸的点击测试,因为要像苹果公司对内部和外部rect以及各种状态转换所做的那样正确地进行测试,需要相当多的代码。我真正想要的是让UIButton完成所有触摸状态的更改,但不进行绘图,同时允许我自己使用OpenGL以及所有其他绘图代码在各种状态下绘制按钮。有关于如何继续的建议或

是否可以创建UIButton的子类,在OpenGL ES中绘制按钮?到目前为止,我有一个只使用OpenGL ES的游戏应用程序,出于性能和美观的原因,我不想在上面添加合成的UIkit元素。再说一遍,我真的不想针对rect实现触摸的点击测试,因为要像苹果公司对内部和外部rect以及各种状态转换所做的那样正确地进行测试,需要相当多的代码。我真正想要的是让UIButton完成所有触摸状态的更改,但不进行绘图,同时允许我自己使用OpenGL以及所有其他绘图代码在各种状态下绘制按钮。有关于如何继续的建议或代码示例吗?

我发现这个问题的一个答案是使用UIButton,但使用自定义样式。然后,如果您没有为按钮状态设置实际图像,则它根本不会绘制任何内容,但当在您提供的矩形中检测到所需的操作时,它仍然可以作为按钮返回。通过这种方式,可以使纹理的区域作为按钮处于活动状态。当触摸或释放按钮时,无论是否执行操作,您都可以得到回调,如果需要,您可以自己更新纹理以响应这些操作。然而,在最后我没有这样做,只是使用自定义按钮的图像按照正常的UIKit使用。我没有发现在OpenGL ES上使用UIKit会使我的应用程序速度过慢。

事实上,我发现将UIKit与OpenGL混合使用并不像我认为的那样在性能方面糟糕。我问这个问题是因为我只想一次画出所有的按钮,作为纹理的一部分,我更新每一帧,让UIKit做点击测试。如果有一种方法可以让UIKit什么都不画,但仍然很好地给我回电话,我会感兴趣的。