如何在 SKView 之上添加 UIView?
Posted
技术标签:
【中文标题】如何在 SKView 之上添加 UIView?【英文标题】:How to add UIView on top of SKView? 【发布时间】:2016-05-16 01:40:06 【问题描述】:我想在 SKView 之上添加一个自定义 NSView。但是,它永远不会出现。不知道发生了什么...
class GameScene: SKScene
override func didMoveToView(view: SKView)
//Trying to add Custom View
let smallView = NSView(frame: NSRect(origin:CGPoint(x: 100,y: 100), size: CGSize(width: 200, height: 200)))
let layer = CALayer()
layer.backgroundColor = CGColorCreateGenericRGB(1.0, 0.0, 0.0, 0.4)
smallView.layer = layer
view.superview!.addSubview(smallView)
谁能告诉我这里发生了什么?我什至尝试在 MainStory 板上添加一些 NSLabel。什么都没发生。
我想在 SKScene 上使用 Coregraphhics 和 Show 绘制一些东西。但是,我无法继续前进。
https://github.com/cocoBavan/NSViewInSpriteKit
【问题讨论】:
如果你得到最新的代码,你会发现我以某种方式通过 [1] 让它工作。使 NSView 成为 layer-backed view [2]。将 SKScene 移动到 SKView 后,在将其附加到 SKView 之前添加延迟。我不知道它为什么起作用。任何见解都值得赞赏。 【参考方案1】:尝试从您的 ViewController 添加 UIView,而不是从 SKScene 添加它。 在您的 VC 添加函数中(例如),创建 UIView,然后将其添加为视图的子视图,如下所示:
let myView = UIView(frame: CGRect(x: 0, y:0, width: 100, height: 100))
self.view.addSubview(myView)
它将在现有视图之上添加一个新视图,因此您的 GameScene 将位于新 UIView 之下。
【讨论】:
以上是关于如何在 SKView 之上添加 UIView?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式将自定义 UIView 添加到 UIScrollView 之上的 Stackview?
如何正确调整 SKView 子视图和 SKScene 的大小