可以创建在OpenGL ES中绘制按钮的UIButton的子类吗?到目前为止,我有一个仅使用OpenGL ES的游戏应用程序,出于性能和美学方面的原因,我不想在此之上添加合成的UIkit元素。再说一次,我并不是真的想实现对rects的触摸的命中测试,因为要像苹果那样正确地对内部和外部的rects以及各种状态转换进行测试,需要相当多的代码。我真正想要的是让UIButton执行所有的触摸状态更改,但不进行绘图,同时允许我使用OpenGL以及所有其他绘图代码在各种状态下绘制按钮。对于如何继续,有什么建议或代码示例吗?
发布于 2011-10-31 09:17:06
我发现这个问题的一个答案是使用UIButton,但使用自定义样式。然后,如果您没有设置按钮状态的实际图像,则它根本不会绘制任何内容,但仍然充当按钮,当在您提供的矩形中检测到所需的操作时,它会回调您。这样,您可以使GLES纹理的区域作为按钮处于活动状态。你可以在有或没有动作的情况下触摸或释放按钮时获得回调,如果需要的话,你可以自己更新纹理来响应这些。然而,最终我并没有这么做,而是按照正常的UIKit使用方式,使用了带有图像的自定义按钮。我没有发现我的应用程序在OpenGL ES上使用UIKit时有任何过度的减速。
https://stackoverflow.com/questions/7701526
复制相似问题