В моем приложении у меня есть эквалайзер с визуализатором позади него.
Эквалайзер - это серия точек, представляющих собой изображения, с траекторией, проведенной между ними с помощью Quartz 2D (также с отметками внизу и слева для обозначения частоты и коэффициентов усиления). За этим находится визуализатор, выполненный с использованием OpenGL с CAEAGLLayer.
Способ, которым это настроено, состоит в том, что есть подпредставление основного вида моего контроллера представления, которое обрабатывает визуализатор, и выше, это другое подпредставление основного вида, который рисует путь. Над обоими показаны изображения для точек эквалайзера.
Что происходит, путь прорисовывается нормально, пока не начинается песня и не начинает рисовать визуализатор. Кажется, что он стирает Quartz 2D над ним. Даже если он вызывает setNeedsDisplay в представлении над ним каждый раз, когда он рисует, не работает. Вроде OpenGL предоставляется эксклюзивный доступ к рисованию там. Точки эквалайзера UIImageView остаются видимыми.
Есть ли способ использовать Quartz 2D поверх вида со слоем gl? Я бы предпочел не использовать OpenGL для рисования контуров и отметок с помощью OpenGL, потому что мне пришлось бы рисовать текстуру 512x512 или 1024x1024 и масштабировать ее, чтобы она не выглядела идеально, и у меня уже есть рабочий Quartz код, чтобы нарисовать все.