Этот вопрос задает нечто очень похожее, и, как я утверждаю, тривиально, чтобы контент OpenGL ES сосуществовал с элементами управления UIKit. Содержимое OpenGL ES живет в CAEAGLLayer, который поддерживает UIView, который является частью обычной иерархии представления. Вы можете легко наложить другие UIViews поверх него.
Например, вы можете посмотреть исходный код моего приложения Molecules , где я размещаю две кнопки UIB поверх моего представления OpenGL ES.
В моих тестах вы теряете ~ 1-5% вашей частоты кадров OpenGL, размещая другие представления поверх представления OpenGL ES, что не так уж и страшно. То, что вы не хотите делать, это сделать ваш контекст OpenGL ES непрозрачным и попытаться наложить его поверх других элементов представления, потому что тогда вы увидите значительное снижение скорости рендеринга.