Qua*_*ntm 5 touch ios sprite-kit swift
我有一个令人困惑的情况.首先,这是代码:
class MyView: SKView {
...
public override func awakeFromNib() {
super.awakeFromNib()
let gameScene = MyGameScene(...)
// ...
presentScene(gameScene)
let view = UIView()
view.frame = bounds
view.isUserInteractionEnabled = true
addSubview(view)
}
...
}
class MyGameScene: SKScene {
...
public override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print("touch received")
}
...
}
Run Code Online (Sandbox Code Playgroud)
我有一个SKView
提出来的SKScene
.在呈现之后,我添加了一个UIView
填满屏幕的内容.然而,当我启动应用程序并点击屏幕时,会打印"触摸接收",这意味着触摸到达了场景,应该在后面view
.这是为什么?
我该怎么做才能防止它呢?
我还尝试在视图中添加手势识别器.但是它并没有阻止这个问题(即使我设置cancelsTouchesInView
为true)
谢谢你的帮助.
看来您正在尝试实现某种 HUD。SceneKit 不是纯粹的 UIKit,因此您需要调整您的方法 - 一些想法:
UIButton
应该仍然可以像这里提到的那样工作:
向 sceneKit 视图添加了按钮,但它有一个滞后SCNView
:
/sf/answers/3008752421/UIView
您可以将其渲染为图像并在那里使用SKSpriteNode
withSKTexture
和 handler 触摸。UIView
直接将你的添加到UIWindow
归档时间: |
|
查看次数: |
262 次 |
最近记录: |