我有一个 iOS SpriteKit SKScene,它通过 View.AddSubview 包含一个 UIKit UITableView 作为场景的一部分。通常这工作正常。然后我创建一个临时位于场景顶部的 SKNode(放大特定图像),我希望它位于 z 顺序的顶部,因此我将新节点的 ZPosition 任意设置为 999。添加节点后,它会出现在所有其他 SpriteKit 节点的顶部,但 UITableView 仍位于 z 顺序的顶部,并且即使在其顶部有一个 sprite 节点(假设),仍然可以接受输入。
当 UIKit View 托管在 SpriteKit 场景上时,有没有办法设置它的 z 顺序,以便我可以将其向后推?
感谢您的任何建议。
最佳答案
这是不可能的。添加到 SKView 的任何 UIView 都位于 SKView 呈现的所有内容之上。 SKView 渲染的节点和 SKScene 本身不是 View ,它们是 SKView 内部的元素,就像表格单元格是 UITableView 的一部分一样,但是您只能更改 UITableView 和 SKView 的绘制顺序。您不能将单个元素(节点或单元格)绘制到其容器 View 之外。
顺便说一句,其他 2d 渲染器中也存在同样的问题,无论是 cocos2d 还是普通的 OpenGL。
关于ios - 如何在 SpriteKit 场景中控制 UITableView 的 Z-Order?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051450/