Как управлять Z-порядком UITableView в сцене SpriteKit?

У меня есть iOS SpriteKit SKScene, который содержит UIKit UITableView как часть сцены через View.AddSubview. Обычно это работает нормально. Затем я создаю SKNode, который временно находится в верхней части сцены (чтобы увеличить определенное изображение), и я хочу, чтобы он был в верхней части z-порядка, поэтому я произвольно устанавливаю ZPosition для нового узла в 999. Когда узел добавлен, он появляется поверх всех других узлов SpriteKit, но UITableView по-прежнему находится в верхней части z-порядка и по-прежнему принимает входные данные, даже несмотря на то, что поверх него есть узел спрайта (предположительно).

Есть ли способ установить z-порядок представления UIKit, когда оно размещено на сцене SpriteKit, чтобы я мог сдвинуть его назад?

Спасибо за любые предложения.

1 ответ

Это невозможно. Любой UIView, добавленный в SKView, стоит поверх всего, что визуализируется SKView. Узлы, визуализируемые SKView и самим SKScene, не являются представлениями, они являются элементами внутри SKView, так же как ячейки таблицы являются частью UITableView, но вы можете изменить только порядок рисования UITableView и SKView. Вы не можете взять отдельные элементы (узлы или ячейки) и нарисовать их вне их контейнерных видов.

Кстати, такая же проблема существует и в других 2d рендерерах, будь то cocos2d или обычный OpenGL.

Другие вопросы по тегам