Я делаю приложение для iOS с представлением OpenGL ES.Поверх 3D-вида я рисую разные графические биты с помощью Cocoa Touch.
Это работает хорошо, если частота кадров хорошая.Тем не менее, когда загрузка ЦП становится высокой (представление GLES падает до 20 кадров в секунду), создается впечатление, что следующий цикл отображения UIKit продвигается вперед.
В частности, я пытаюсь отобразить представление всплывающей подсказки, основанный на различных подклассах UIView.Когда пришло время его отобразить, я обновляю текст метки всплывающей подсказки и изменяю размер фона, затем устанавливаю скрытым значение NO для основного UIView и вызываю setNeedsDisplay и setNeedsLayout.
Когда частота кадров низкая (то есть загрузка процессора высока) следующий цикл отображения, кажется, продвигается вперед бесконечно.Но сразу же, когда загрузка ЦП снижается, представление отображается, как и ожидалось.
Можно ли каким-либо образом инициировать цикл отрисовки в UIKit между перерисовками моего 3D-движка?Есть другие идеи?