我正在创建一个带有一个视图控制器和多个skscenes的Sprite Kit游戏。基本上,应用程序加载视图控制器,它加载菜单场景,然后我使用SKTransitions进入场景之间。在创建设置场景时,我希望能够像UISlider一样使用某些UIKit元素 - 但是,我只能让UISlider显示在菜单场景中。为了让UISlider仅在设置场景中显示,我到底需要做什么?感谢您花时间阅读本文。
答案 0 :(得分:1)
龙的骑士尽可能避免在SpriteKit中使用UIKit。
但是在某些情况下,UIKit在SpriteKit中非常有用。例如,我使用UICollectionViews在我的一个游戏中显示我的World和Level选择菜单,因为它是最好的选项(单元重用,出列,动画效果等)。
只需使用SKScene的view属性即可在特定场景中添加UIKit元素。
class MenuScene: SKScene {
let slider = UISlider(frame: CGRect(x: 250, y: 250, width: 280, height: 20))
override func didMoveToView(view: SKView) {
loadSlider()
}
private func loadSlider() {
...
view?.addSubview(slider) // if you are calling view outside of DidMoveToView it is an optional, so use ?
}
}
当您将场景更改为添加到GameViewController时,不要忘记再次删除它。
override func willMoveFromView(view: SKView) {
slider.removeFromSuperview()
}
希望这有帮助。